【发布时间】:2009-08-29 14:57:12
【问题描述】:
当与方法一起使用时,哪些访问修饰符使其可用于包中的所有类和子类?
【问题讨论】:
-
可能一些关于 Java 的基础书籍不会是多余的?
标签: java access-modifiers
当与方法一起使用时,哪些访问修饰符使其可用于包中的所有类和子类?
【问题讨论】:
标签: java access-modifiers
public、protected 和默认修饰符(没有关键字)。除了private 之外的所有内容。
例如,假设包foo 具有以下类:
public class MyClass {
public void method1() { };
protected void method2() { };
void method3() { };
private void method4() { };
}
然后一个类foo.SecondClass 可以调用方法method1、method2 和method3,但不能调用method4。
请参阅Java tutorial,了解每个修饰符所允许的有用表格。
【讨论】:
除私有之外的所有内容(例如,公共、受保护和默认修饰符)。 请参见下图。
【讨论】:
包访问修饰符实际上是没有修饰符。它也被称为“默认”修饰符。请参阅here 了解更多信息。
【讨论】:
事实证明protected 实际上比什么都不说更“受保护”。默认的 package-private 和 protected 都允许从包内访问; protected 然后为包外的子类添加可见性。不过,它比public 更“受保护”。
【讨论】: