Javaのprotected
のメンバーは、パッケージ全体で表示されます。どうして?Javaの保護は保護されません
私のクラスとそれはサブクラスの間でプライバシーを共有したいだけですが、Javaでは許可されません。
私は何をすべきですか?
Javaのprotected
のメンバーは、パッケージ全体で表示されます。どうして?Javaの保護は保護されません
私のクラスとそれはサブクラスの間でプライバシーを共有したいだけですが、Javaでは許可されません。
私は何をすべきですか?
もパッケージメンバー間で共有されているため、クラスとその子を別のパッケージに移動できます。
protected
メンバーは、およびすべてのサブクラス(保護されている)に見えます。だから、なぜそんなに驚いたの? 。
これは意図した動作です。 protected
と宣言されているすべてのフィールドは、クラス、パッケージ、およびパッケージ外のサブクラスを含むすべてのサブクラスで表示されます。
コードを投稿してください。どのようにこれらのフィールドやメソッドを宣言していますか? –
Javaアクセス修飾子が動作する方法に生きています。 –
保護されている範囲の明確な説明については、[この表](http://stackoverflow.com/a/33627846/276052)を参照してください。 *なぜ*このようにして保護されたセマンティクスが実装されたのかは、言語の設計者だけが答えられる可能性が高いからです。 – aioobe