小迷糊171 2020-12-13 16:24 采纳率: 0%
浏览 147

在向上转型中,向上转型的对象只有调用子类覆写父类的方法时,调用的才是子类的方法吗?

比如Father fson = new Son(); 中,

情况1:fson调用函数funcA("haha"),这个函数在父类中有定义funcA(Object s),同时子类中重载了这个方法funcA(String s),但是实际调用的是父类中的funcA;

情况2: 当调用父类中定义的静态方法时,调用的也是父类的,即使子类中有同名的方法也不行。

 

这个的原理是什么呢?向上转型和静态绑定之间的关联又是什么呢???

  • 写回答

4条回答 默认 最新

  • Never__GiveUp 2020-12-13 21:34
    关注

    额,这个吧,1.子类应该不叫重载,叫重写(override),2.调用普通方法的时候,怎么可能是调用父类的呢?

    在多态中,

    一、如果是方法的话,是编译看父类,运行看子类的(就是说子、父类中都有这个方法才能编译通过,到了运行的时候执行子类的方法)

    二、如果是变量或者静态方法的话,是编译看父类,运行看父类的

    我也是小白,仅供参考,共同进步,哈哈

    评论

报告相同问题?