首页 > 其他 > 详细

继承中子类构造函数相关问题

时间:2017-04-13 23:39:59      阅读:361      评论:0      收藏:0      [点我收藏+]

Day08_SHJavaTraing_4-13-2017

1.为什么任何一个类(不包含Object)的构造函数中都需要一个super() 语句?

  因为除了Object类以外,所有类都会继承一个父类;继承父类,那么子类实例化时就需要给父类中的成员变量显示赋值,就需要用到父类中的构造函数。

2.如果父类中没有无参构造函数,子类如何实例化?

  super()表示调用父类无参构造函数;如果父类中没有无参构造函数,就会报错。

技术分享

如何解决这个问题呢?

  方法①在父类中添加一个无参构造函数

 技术分享

方法②在子类的构造函数中显示的调用父类有参构造函数

  在子类构造函数中使用super调用父类构造函数需要注意,这个super语句必须写在构造函数的第一行。

 技术分享

3.子类构造函数中,this() 和 super() 能否同时存在?

不能。因为他们都要写在构造函数的第一行。所以如果一个构造函数中有this()语句,就没有super()语句,super()存在于this调用的那个构造函数里面。

4.如果一个类的构造函数全部私有了,还可以有子类吗?

不能。因为在子类的构造函数中一定要调用父类的构造函数,而一旦一个类的构造函数都私有了,就只能在本类中使用,其他类(也包括子类)都无法使用。

 

继承中子类构造函数相关问题

原文:http://www.cnblogs.com/EzraOholiabXue/p/Day08_SHJavaTraing_4-13-2017_02.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!