为什么类扩展调用原始类的私有方法?

时间:2019-04-19 14:47:59

标签: java

在此代码中:

public abstract class Bird {
    private void fly() {
        System.out.println("Bird is flying");
    }

    public static void main(String[] args) {
        Bird bird = new Pelican();
        bird.fly();
    }
}

class Pelican extends Bird {
    protected void fly() {
        System.out.println("Pelican is flying");
    }
}

请解释为什么这是“ Bird is flying”的输出,因为私有成员没有继承并且我在Bird中有一个Pelican实例?

1 个答案:

答案 0 :(得分:-1)

当引用类型为Bird时,尽管类型为Pelican,该对象也只能访问Bird类中的方法。引用类型始终表示约束,并且不能访问例如的字段。子类。