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