Java 中的默认访问说明符是什么?
2022-08-31 08:51:12
我刚开始读一本Java书,想知道;如果未指定任何访问说明符,则哪个访问说明符是默认访问说明符?
我刚开始读一本Java书,想知道;如果未指定任何访问说明符,则哪个访问说明符是默认访问说明符?
默认可见性称为“包专用”(尽管不能显式使用它),这意味着可以从类所属的同一包内部访问该字段。
正如mdma所指出的,对于接口成员来说,情况并非如此,因为接口成员的默认值是“公共的”。
请参阅 Java 的访问说明符
默认说明符取决于上下文。
对于类和接口声明,默认值为包私有。这介于受保护和私有之间,只允许同一包中的类访问。(protected 是这样的,但也允许访问包外部的子类。
class MyClass // package private
{
int field; // package private field
void calc() { // package private method
}
}
对于接口成员(字段和方法),默认访问是公共的。但请注意,接口声明本身默认为包私有。
interface MyInterface // package private
{
int field1; // static final public
void method1(); // public abstract
}
如果我们有声明
public interface MyInterface2 extends MyInterface
{
}
然后,使用 MyInterface2 的类可以从超级接口看到 field1 和 method1,因为它们是公共的,即使它们看不到 MyInterface 本身的声明。