当一个类继承了某个类时,在子类的构造方法里,super()必须先被调用;如果你没有写,编译器会自动调用super()方法,即调用了父类的构造方法;
这并不是创建了两个对象,其实只有一个子类Sub对象;之所以需要调用父类的构造方法是因为在父类中,可能存在私有属性需要在其构造方法内初始化;
在Java中,如果一个类没有定义构造方法,编译器会默认插入一个无参数的构造方法;但是如果一个构造方法在父类中已定义,在这种情况,编译器是不会自动插入一个默认的无参构造方法。
要修复这个错误,很简单:
1、在父类手动定义一个无参构造方法:
2、移除父类中自定义的构造方法
3、在子类中自己写上父类构造方法的调用;如super(value);
此文章是同博客一大神所写,我是在不知道为什么的时候,百度得到,下面是大神博客园的地址,请大家访问。
https://www.cnblogs.com/chenpi/p/5486096.html#_label0
原文地址:https://www.cnblogs.com/sixgodbiao/p/9846560.html
时间: 2024-10-03 22:29:21