14
  Modifier        Class     Package   Subclass  World
  public          Y         Y         Y         Y
  protected       Y         Y         Y         N
  no modifier     Y         Y         N         N
  private         Y         N         N         N


  public class a {
  protected int x;
  }

  public class b {
        b() {
              a A=new a();
              A.x=9;//why we can access this field ?
        }
  }

Javaで保護された特定の作業を知るのを手伝ってください

4

1 に答える 1

16

なんで?それがJavaプログラミング言語の設計方法だからです。それ以上のものはありません。

protectedからアクセスできるもの

  • クラス自体、
  • 同じパッケージ内のクラス(サブクラスであるかどうかは関係ありません)、
  • サブクラス(同じパッケージにあるかどうかは関係ありません)。

これはC++とは異なりますが、JavaはC ++ではないため、必ずしも同じように機能するとは限りません。

于 2012-11-09T14:16:43.170 に答える