2017-06-06 1 views
0

私はkotlinを初めて使っています最近、kotlinで継承について学んでいます。そして、クラスの可視性を「保護されている」とマークすることはできません。私が間違っている場合は私を訂正するか、またはクラスを保護するための他の方法がありますか?kotlinでは、クラスの可視性を「保護されている」とマークできないのはなぜですか?

+0

あなたはトップレベルのクラスを意味すると思います。それはどういう意味ですか?クラスを保護されているとマークするのはどういう意味ですか? –

+0

ネストされたクラスは、Javaとまったく同じように保護できます。 –

+0

正確なエラーに問題があるサンプルを表示する必要があります。なぜなら、あなたが求めるものは*許可されているので、別の何かをしなければならないからです。 –

答えて

5

protectedには、派生クラスからのみアクセスできるように、クラスの一部のみをマークすることができます。

open class X { 
    protected val v: SomeType = someValue 
    protected fun f() { } 
    protected class Y { ... } 
} 

しかし、あなたは、クラス(例えば、トップレベルのクラスまたは関数)に属していない protected何かをマークすることはできません、修正理由:あなたは protectedメンバープロパティ、メンバ関数や入れ子になったクラスをマークすることができますトップレベルエンティティは継承の対象ではないため、アクセスする派生クラスは存在しません。

関連する問題