首页 > 代码库 > 继承中子类构造函数相关问题
继承中子类构造函数相关问题
Day08_SHJavaTraing_4-13-2017
1.为什么任何一个类(不包含Object)的构造函数中都需要一个super() 语句?
因为除了Object类以外,所有类都会继承一个父类;继承父类,那么子类实例化时就需要给父类中的成员变量显示赋值,就需要用到父类中的构造函数。
2.如果父类中没有无参构造函数,子类如何实例化?
super()表示调用父类无参构造函数;如果父类中没有无参构造函数,就会报错。
如何解决这个问题呢?
方法①在父类中添加一个无参构造函数
方法②在子类的构造函数中显示的调用父类有参构造函数
在子类构造函数中使用super调用父类构造函数需要注意,这个super语句必须写在构造函数的第一行。
3.子类构造函数中,this() 和 super() 能否同时存在?
不能。因为他们都要写在构造函数的第一行。所以如果一个构造函数中有this()语句,就没有super()语句,super()存在于this调用的那个构造函数里面。
4.如果一个类的构造函数全部私有了,还可以有子类吗?
不能。因为在子类的构造函数中一定要调用父类的构造函数,而一旦一个类的构造函数都私有了,就只能在本类中使用,其他类(也包括子类)都无法使用。
继承中子类构造函数相关问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。