考虑以下类:
public class A {
public void foo() {
System.out.println("A.foo()");
}
public void bar() {
System.out.println("A.bar()");
foo();
}
}
public class B extends A {
public void foo() {
System.out.println("B.foo()");
}
public static void main(String[]
args) {
A a = new B();
a.bar();
}
}
这段代码的输出是A.bar()
然后B.foo()
。我注意到如果我将方法 foo() 的访问级别从public
更改private
为输出是:A.bar()
然后A.foo()
.
为什么?