【发布时间】:2013-10-22 17:08:20
【问题描述】:
当我们在默认类中有公共方法时,为什么 JAVA 编译器不报错?
当我们有非公共类(假设具有默认访问级别)并且如果我们在该类中有公共方法,如下所示,
class Main {
public void doStuff() {
}
}
那么我们不能从同一个包的外部访问上面的 doStuff() 方法。但是对于上述方法减速具有公共访问修饰符是合法的。那么它的目的是什么?
【问题讨论】:
-
方法也可以通过反射调用——在这种情况下,javac 会发出通知
-
因为在 Java 的旧时代,您可以从默认包中
import;这就是他们关于向后兼容性的伟大之处,它无缘无故地阻碍了几代人的未来。
标签: java oop access-modifiers