Implicit super constructor Person() is undefined for default constructor. Must define an explicit constructorJava(134217868)
写继承例题的一个小错误,记一下
父类:
//public Person(){
//
//}
public Person(String name, char sex, int age){
this.name = name;
this.sex = sex;
this.age = age;
}
子类:
public class Student extends Person{ // 这里Student出现报错
// public Student(){
// }
public Student(String name, char sex, int age){
// 如果注释掉这个super(),则会默认一个super();
// 然而父类中不存在Person(),则会报错
super(name, sex, age); // 调用父类的构造函数来给student继承父类的属性来赋值
this.name = name;
this.sex = sex;
this.age = age;
}
}
原因 : 隐式超级构造函数 Person() 未为默认构造函数定义。必须定义显式构造函数Java(134217868)
就是无参的构造函数person()忘记定义了,以后注意,就这样吧
总结:
子类在继承父类后,它定义的构造方法会默认加入一个super()
(在没有写出的情况下),当编辑器在父类中找不到父类定义的相同的构造方法时,就会报错。