yuan生的小小白 2022-01-19 13:02 采纳率: 100%
浏览 50
已结题

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

我在学习多态的时候遇到一处疑惑的地方,代码如下
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条回答 默认 最新

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

      • 已结题 (查看结题原因) 1月19日
      • 已采纳回答 1月19日
      • 创建了问题 1月19日

      悬赏问题

      • ¥15 在matlab中如何进行三个参数的离散傅里叶逆变换(idft)
      • ¥15 遇到问题了,求解答!
      • ¥15 请问coppliasim eduUR5视觉抓取怎么实现仿真,
      • ¥30 JavaWeb实验(购物平台)
      • ¥15 八路抢答器倒计时设计时显示器不输出,只能显示0
      • ¥15 用C语言随机生成一个迷宫
      • ¥15 超多因素的正交方案设计
      • ¥15 Scratch~汽车小游戏
      • ¥30 OSGB转换为3dtiles
      • ¥25 用于Audio的芯片中“Audio Interface”和“Mode Control”是什么?