码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-04-13 23:38:20      阅读:289      评论:0      收藏:0      [点我收藏+]

标签:函数   blog   object   方法   http   java   包含   相关   显示   

Day08_SHJavaTraing_4-13-2017

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

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

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

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

技术分享

如何解决这个问题呢?

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

 技术分享

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

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

 技术分享

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

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

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

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

 

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

标签:函数   blog   object   方法   http   java   包含   相关   显示   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!