【发布时间】:2013-09-30 16:06:31
【问题描述】:
假设我们有一个包“p1”:
package p1;
public class A {
protected void method() { }
}
...我们还有一个包“p2”:
package p2;
import p1.A;
public class B extends A { }
class Tester {
static void run() {
new B().method(); //compile-time error
}
}
现在,如果我们尝试编译整个示例,我们将停留在标记行并显示编译时错误:编译器只是没有在 B 中看到目标方法。为什么会这样?
【问题讨论】:
-
因为
method()是protected? docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
标签: java inheritance overriding visibility protected