public class PrivateOverride { private void f() {
System.out.println("private f()");
} public static void main(String[] args) {
PrivateOverride po = new Derived();
po.f();
}
}class Derived extends PrivateOverride {
public void f() {
System.out.println("public f()");
}
} ///:~
为什么不输出public f()而输出private f()呢?
System.out.println("private f()");
} public static void main(String[] args) {
PrivateOverride po = new Derived();
po.f();
}
}class Derived extends PrivateOverride {
public void f() {
System.out.println("public f()");
}
} ///:~
为什么不输出public f()而输出private f()呢?
private void f() {
System.out.println("private f()");
}
因为这个方法是private的,所以并不会动态帮定(多态) PrivateOverride po = new Derived();
po.f();
所以po是一个PrivateOverride 的引用,所以就直接执行自己的f() 方法, 不会执行Derived的f()
public void f() {
System.out.println("private f()");
}
改成这样就可以输出了private f()
求购视频会议源代码!
用提供者请电:
[email protected]