protectedフィールドを実装するクラスprotectedとそれをサブクラス化するものだけがアクセスできる、に似たものが必要です。
したがって、基本クラスの変数をとして宣言できるようにしたいのですがprivate、それでもサブクラスから変数にアクセスできるようにしたいのです。
おそらく、これはサブクラス化、、、privateおよび/またはの性質そのものに反しprotectedます。
このようなものはJavaに存在しますか?
protectedフィールドを実装するクラスprotectedとそれをサブクラス化するものだけがアクセスできる、に似たものが必要です。
したがって、基本クラスの変数をとして宣言できるようにしたいのですがprivate、それでもサブクラスから変数にアクセスできるようにしたいのです。
おそらく、これはサブクラス化、、、privateおよび/またはの性質そのものに反しprotectedます。
このようなものはJavaに存在しますか?
Javaのフィールドには4つのアクセスレベルしかありません。
privateprotectedpublicprotectedサブクラス、同じパッケージ内の他のクラス、およびクラス自体のprotectedメンバーがメンバーにアクセスできるようにします。
簡単に言えば、望ましいことを正確に達成する方法はありません。
これらの4つのアクセス修飾子の説明については、Javaチュートリアルからのクラスのメンバーへのアクセスの制御に、より具体的な情報があります。
コードベースを制御する場合は、ベースクラスを使用してパッケージに入れる内容をいつでも制御できます。パッケージ内に単独である場合は、サブクラスを除いて、プライベートにしておきたいメンバーにアクセスできるのはサブクラスのみです。
いいえ、それを正確に行うためのアクセス修飾子はありません。修飾子は最もprotected近いものですが、フィールドを同じパッケージ内の任意のクラスとサブクラス(同じパッケージ内または同じパッケージ外)に公開します。
ありえない。Uは、変数をプライベートとして宣言してから、スーパークラスの変数を変更するパブリックメソッドを宣言できます。次に、変数のpublicメソッドを呼び出します。