yuan生的小小白
2022-01-19 13:02
采纳率: 100%
浏览 49

为什么父类引用指向子类对象后,子类无法使用之前继承的方法?

我在学习多态的时候遇到一处疑惑的地方,代码如下
public class Test {
    public static void main(String[] args) {
        A c = new C();
        c.commonA;//不报错
        c.commonB;//报错
        c.commonC;//报错
        
    }
}

class A {
    public void commonA(){
        System.out.println("A方法");
    }
}

class B extends A{
    public void commonB(){
        System.out.println("B方法");
    }
}

class C extends B{
    public void commonC(){
        System.out.println("C方法");
    }
}

执行上述代码后,只能正常调用A的方法,而B类和C类的方法均无法调用,这里不是new的C类吗,而C类继承了B类,B类又继承了A类,C类不是就拥有了B类和A类所有的方法吗,那为什么我创建C类的对象后,无法调用他们的方法。
请问这里应该怎么正确理解,这里面的原理又是什么,谢谢
  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

4条回答 默认 最新

相关推荐 更多相似问题