Java 中的默认访问说明符是什么?

新手上路,请多包涵

我刚开始阅读一本 Java 书籍并想知道;如果没有指定,哪个访问说明符是默认的?

原文由 bennedich 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 404
2 个回答

默认可见性称为“包私有”(尽管您不能显式使用它),这意味着可以从类所属的同一包内访问该字段。

正如 mdma 指出的那样,接口成员并非如此,默认值为“public”。

查看 Java 的访问说明符

原文由 KeatsPeeks 发布,翻译遵循 CC BY-SA 4.0 许可协议

默认说明符取决于上下文。

对于类和接口声明,默认为包私有。这介于受保护和私有之间,只允许同一包中的类访问。 (protected是这样的,但也允许访问包外的子类。)

 class MyClass   // package private
{
   int field;    // package private field

   void calc() {  // package private method

   }
}

对于接口成员(字段和方法),默认访问权限是公共的。但请注意,接口声明本身默认为 package private。

 interface MyInterface  // package private
{
   int field1;         // static final public

   void method1();     // public abstract
}

如果我们有声明

public interface MyInterface2 extends MyInterface
{

}

使用 MyInterface2 的类可以从超级接口中看到 field1 和 method1,因为它们是公共的,即使它们看不到 MyInterface 本身的声明。

原文由 mdma 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题