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

正在回答

3 回答

你应该是学习的是java中的继承知识。在java中,如果两个类之间有父子类关系,那么,创建子类对象之前,必须先创建父类对象,创建对象肯定会涉及到调用构造函数,如果父类里面有多个构造函数,那么在创建父类对象的时候该调用哪个构造函数呢?这时候,在子类的构造函数中,必须声明创建父类对象的时候调用的构造函数,怎么声明呢?就是通过子类构造函数中的super关键字来声明。如果子类中没有任何super关键字,编译器在编译的时候,默认会在子类的构造函数的第一行添加一个"super()",声明创建父类对象的时候,调用父类的无参构造。如果子类的构造中声明了super(),则默认的失效,创建父类对象的的时候调用显示声明的父类构造函数。over!!

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

qttloading

当然,子类中显示声明"super()"不一定非得是无参的构造函数,也可以是有参的!
2015-02-04 回复 有任何疑惑可以回复我~
#2

程序小猴子 提问者

恩恩!谢谢你哦!这下明白了
2015-02-05 回复 有任何疑惑可以回复我~

用new语句创建一个类的对象的同时会调用该类的构造方法,创建子类的对象时会先调用父类的构造函数然后调用子类的构造函数,调用父类构造函数过程是默认调用的,如果你想显式的调用,就需要在子类的构造函数中用super()语句来调用,并且super语句必须在构造函数的第一条语句.这是super语句的语法,不需要问为什么。

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

程序小猴子 提问者

你们俩个的解答结合起来我的疑问就全都解决了,谢谢你啦!
2015-02-05 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

有点子不太清楚

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