2016-04-09 10 views
-1

Javaのprotectedのメンバーは、パッケージ全体で表示されます。どうして?Javaの保護は保護されません

私のクラスとそれはサブクラスの間でプライバシーを共有したいだけですが、Javaでは許可されません。

私は何をすべきですか?

+0

コードを投稿してください。どのようにこれらのフィールドやメソッドを宣言していますか? –

+2

Javaアクセス修飾子が動作する方法に生きています。 –

+3

保護されている範囲の明確な説明については、[この表](http://stackoverflow.com/a/33627846/276052)を参照してください。 *なぜ*このようにして保護されたセマンティクスが実装されたのかは、言語の設計者だけが答えられる可能性が高いからです。 – aioobe

答えて

1

もパッケージメンバー間で共有されているため、クラスとその子を別のパッケージに移動できます。

0

protectedメンバーは、およびすべてのサブクラス(保護されている)に見えます。だから、なぜそんなに驚いたの? 。

0

これは意図した動作です。 protectedと宣言されているすべてのフィールドは、クラス、パッケージ、およびパッケージ外のサブクラスを含むすべてのサブクラスで表示されます。

関連する問題