a1.show(b)为什么输出是AA

解决方案 »

  1.   

    a1是A的对象,所以会调用A的show方法
    b是B对象,是A的子类对象,所以符合A的show方法的参数就是【2】
    所以输出AA
      

  2.   

    谢谢大佬,我还有一点疑问,b对应的实例是newB(),A类中并没有show(B obj),只有B类中有show(B obj),不是说父类的对象不能调用子类的方法吗,它是怎么个途径去找到A类中的show(A obj)并输出AA
      

  3.   

    show(A obj)这里参数是父类,任何子类都可以传进来
    就好比如果是show(Object obj)用Object类型做参数的话,可以传任意类型进来,因为任何类型都是Object的子类
      

  4.   

    a1是A的对象,所以会调用A的show方法
    b是B对象,是A的子类对象,所以符合A的show方法的参数就是【2】
    所以输出AAJava萌新入门基础教学视频,感兴趣的进去看一下,绝对都是干货 :https://www.bilibili.com/video/av76356696