public class PrivateOverride {
private void f() {
System.out.println("private f()");
}
}
public class Derived extends PrivateOverride {
public void f() { //this method is never run.
System.out.println("public f()");
}
}
public static void main(String[] args) {
// instantiate Derived and assign it to
// object po of type PrivateOverride.
PrivateOverride po = new Derived();
// invoke method f of object po. It
// chooses to run the private method of PrivateOveride
// instead of Derived
po.f();
}
}
所以,这段代码的输出是private f()
。现在,我的脑海中出现了一个问题:如何才能po这是一个对象Derived类调用私有方法私有覆盖它的基类是哪个?
因为你定义了 main 方法PrivateOverride
班级。如果将 main 方法放在派生类中,它将无法编译,因为.f()
那里将不可见。
po.f() 调用PrivateOverride
类不是多态性,因为f()
in PrivateOverride
类是private
, so f()
in Derived
类未被覆盖。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)