父类Father和子类Son,父类中有一个方法A,在子类中也定义了一模一样的一个方法A(具有与老方法相同的方法签名),那么在子类中那个A自然会把父类中的A给覆盖了。通过子类的对象调用方法A的时候,自然执行的是子类的A,通过父类的对象调用A的时候,自然执行的是父类的A,那么问题是:如果父类中有一个成员变量是子类Son,那么在父类中通过调用这个私有对象变量的方法A的时候, 是子类的A,还是父类的A?
3条回答 默认 最新
AmazingZ 2015-08-04 02:40关注这么给你说吧,假如你实例化son,jvm会根据继承关系先调用父类构造函数,但是在调用所有构造函数之前会将每个类的对象初始化(不是你赋值时的初始化)成二进制的0
,所以父类任然会调用子类的方法,但是结果完全不可预料,所以强烈建议不要这样写。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报