为什么子类构造方法中既没有显式调用父类的构造方法,而父类又没有无参的构造方法的时候会编译出错呢?这是什么原因呢?难道子类中当父类没有无参的构造方法时就不能够使用无参的构造方法了吗?求解
3 回答
已采纳
JustWannaHugU
TA贡献452条经验 获得超796个赞
没有给类写构造函数时,系统默认有个无参的构造函数;
1、一旦你手动写了构造函数,就会覆盖默认的构造函数;(JVM不会在创建默认的了)
2、当主动写带参数的构造函数时,最后写个无参的构造函数,避免有时不想调有参构造函数时,可以调用无参的。
子类中当父类没有无参的构造方法时就不能够使用无参的构造方法
因为每个对象在构造成功以前,都必须先构造其父类
你报错的原因,是因为你在子类构造方法中没有调用了父类有参的构造方法,而编译器发现,父类中也没有无参的构造方法,找不到你那个对应的构造方法了,所以它认为你的父类对象构造失败
类被继承的时候,如果你没有特定的super调用父类的带参构造方法时,系统会首先调用父类的无参构造方法
如果你在父类中没有写无参构造方法,那么在子类的构造方法中必须显示的调用父类中的有参数的构造方法(写在第一句)。
方便请采纳!
添加回答
举报
0/150
提交
取消