父项混乱的Java OCAJP私有方法

时间:2018-11-24 17:39:41

标签: java

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,对吗?请告诉我。

如果私有方法是静态的,则可以使用父引用访问父私有方法。但父级中的私有方法不是静态的。

0 个答案:

没有答案