1

同じパッケージ内の非サブクラスと別のパッケージ内のサブクラスの違いは何ですか?

4

2 に答える 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 に答える