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

super关键字问题。

super关键字问题。

Maosu 2016-08-27 14:15:26
为什么子类构造方法中既没有显式调用父类的构造方法,而父类又没有无参的构造方法的时候会编译出错呢?这是什么原因呢?难道子类中当父类没有无参的构造方法时就不能够使用无参的构造方法了吗?求解
查看完整描述

3 回答

已采纳
?
JustWannaHugU

TA贡献452条经验 获得超796个赞

没有给类写构造函数时,系统默认有个无参的构造函数;
1、一旦你手动写了构造函数,就会覆盖默认的构造函数;(JVM不会在创建默认的了)
2、当主动写带参数的构造函数时,最后写个无参的构造函数,避免有时不想调有参构造函数时,可以调用无参的。

子类中当父类没有无参的构造方法时就不能够使用无参的构造方法

因为每个对象在构造成功以前,都必须先构造其父类

你报错的原因,是因为你在子类构造方法中没有调用了父类有参的构造方法,而编译器发现,父类中也没有无参的构造方法,找不到你那个对应的构造方法了,所以它认为你的父类对象构造失败

类被继承的时候,如果你没有特定的super调用父类的带参构造方法时,系统会首先调用父类的无参构造方法

如果你在父类中没有写无参构造方法,那么在子类的构造方法中必须显示的调用父类中的有参数的构造方法(写在第一句)。

方便请采纳!

查看完整回答
5 反对 回复 2016-08-27
?
JustWannaHugU

TA贡献452条经验 获得超796个赞

同学你好,这是java的强制语法规则


查看完整回答
3 反对 回复 2016-08-27
?
ziom

TA贡献948条经验 获得超1109个赞

子类的构造默认会调用父类的无参构造。而无参构造默认是有的,但是当你手动定义了有参构造时,无参构造就不会有了,此时需要显式地写出无参构造

查看完整回答
反对 回复 2016-08-27
  • 3 回答
  • 0 关注
  • 1462 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信