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

3-8的toString重写

为什么重写toString方法后就不输出父类当中的无参构造内

正在回答

5 回答

http://img1.sycdn.imooc.com//57bd688500011ca511430220.jpg有个硬伤的地方,楼主观察比较仔细哈,看下控制台的滚动条,上面是不是还有一点没显示?呐~就是那个父类的构造方法输出。好想做一个痛哭的表情。_(:зゝ∠)_

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

慕粉1143028379

刚想说滚动条拉到顶上。。
2017-01-02 回复 有任何疑惑可以回复我~

一定会调用,原因是这样的。
因为子类继承了父类,那么就默认的含有父类的公共成员方法和公共成员变量,这些方法和变量在子类里不再重复声明。如果你初始化子类的时候,不初始化父类,那么你通过子类调用父类方法或变量的时候会出现什么情况呢?当然就是抛异常阿!所以,Java虚拟机会在你初始化子类的时候默认的初始化子类的父类。而且是一层一层的往上递进!
在其他网站看到的

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

为什么我还会输出父类的构造方法吗...

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

重写父类继承的方法,当调用时会优先调用子类的方法,也就是说会优先执行子类中的toString

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

建议在学习下重写的概念。还可以看一下super关键字的用法。

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

举报

0/150
提交
取消
Java入门第二季 升级版
  • 参与学习       530631    人
  • 解答问题       6091    个

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

进入课程

3-8的toString重写

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