为了账号安全,请及时绑定邮箱和手机立即绑定

obj2.eat打印结果为什么是Dog.eat()

执行obj2.eat()的时候,为什么不是打印Animal.eat()+Dog.eat()?继承里不是讲子类调用父类的时候是先走父类的,再走子类的?

正在回答

3 回答

创建子类对象时,调用方法为子类重写的方法


0 回复 有任何疑惑可以回复我~

Dog类是Animal的子类,Animal类有自身的构造方法,如果Dog类中没有写任何构造方法,那么它默认继承父类Animal的构造方法,但是,在Dog类中,对构造方法进行了重写,这就意味着,Dog类中的构造方法已经是对继承而来的构造方法实行了覆盖,所以在执行obj2.eat()的时候,调用的是Dog类中的构造方法;

0 回复 有任何疑惑可以回复我~

构造方法才是先走父类再走子类,别搞混了

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

obj2.eat打印结果为什么是Dog.eat()

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信