同じパッケージ内の非サブクラスと別のパッケージ内のサブクラスの違いは何ですか?
質問する
128 次
2 に答える
2
クラスが与えられると、A
A
のpublic および package-private メソッドにアクセスできる同じパッケージ内の非サブクラスA
別のパッケージ内の のサブクラスは
A
、 の public メソッドおよび protected メソッドにアクセスできますA
。
注: package-private 保護のキーワードはありません。他に何も指定されていない場合に選択される保護です。
public void thisIsPublic(...)
protected void thisIsProtected(...)
void thisIsPackagePrivate(...)
推奨読書:クラスのメンバーへのアクセスの制御
于 2012-12-06T13:23:36.537 に答える
2
「同じパッケージ内の非サブクラスと別のパッケージ内のサブクラス」ではなく、「同じパッケージ内の非サブクラスと異なるパッケージ内のサブクラスを宣言するとどうなるか?これは、スコープ指定子
を扱う場合に重要です。ここで違いを表にしたものです。
Private No Modifier Protected Public
1. Same class Yes Yes Yes Yes
2. Same package No Yes Yes Yes
subclass
3. Same package No Yes Yes Yes
non-subclass
4. Different package No No Yes Yes
subclass
5. Different package No No No Yes
non-subclass
この表は、"Herbert Schildt" 著の書籍 "Java The Complete Reference" からのものです。
于 2012-12-06T13:59:09.327 に答える