OCAJP-1本书评估测试具有以下程序。我不明白当父引用实例化子对象时,父如何访问其私有方法。
public class ConstructorHierarchy {
/**
*
*/
public ConstructorHierarchy() {
System.out.println("Deer");
}
public ConstructorHierarchy( int age ) {
System.out.println("DeerAge");
}
private boolean hasHorns() {
return false;
}
/**
* @param args
*/
public static void main(String[] args) {
ConstructorHierarchy ch = new ChildCH(5);
System.out.println(ch.hasHorns());
}}
class ChildCH extends ConstructorHierarchy {
public ChildCH( int age ) {
System.out.println("ChildCH");
}
public boolean hasHorns( ) {
return true;
}}
输出是鹿childCH错误。
我期待鹿的孩子能做到这一点。根据运行时多态性,必须调用子类hasHorns,对吗?请告诉我。
如果私有方法是静态的,则可以使用父引用访问父私有方法。但父级中的私有方法不是静态的。