是不是“包私人”成员访问与默认(同上)的代名词

我对某些文档使用的术语“软件包专用”以及“默认访问”的用法有点困惑。 不是包私有和默认访问都是受保护的同义词吗?


是的,它几乎是一样的。 受保护的修饰符指定该成员只能在其自己的包内访问(与包私有一样), 另外 ,还可以在另一个包中访问该类的子类。


“默认”访问修饰符(它们都没有明确给出)是“包私有”,这意味着只有同一包中的东西才能访问它们。 然而,在同一个软件包中,对类之间的继承关系没有任何意义 - 它纯粹是一种命名约定。

“受保护”意味着不仅是同一包中的类,还有子类(不管这些子类在哪个包中)都可以访问它。


的默认访问是包私有的,但接口成员的默认访问是公共的。

例如

public interface I {
   int A = 1;
// same as
   public static final int A = 1;

   void method();
// same as
   public abstract void method();

   class C { }
// same as
   public static class C { }
}

接口的默认访问规则与类不同。

链接地址: http://www.djcxy.com/p/4109.html

上一篇: Isn't "package private" member access synonymous with the default (no

下一篇: What is Encapsulation exactly?