JAVA 中创建子类对象时 需要调用先父类的构造函数, 如果子类的构造方法中定义了需要调用的父类构造函数,则调用所指定的函数,如果子类构造方法中没有制定调用父类的构造方法 ,则调用父类的无参构造方法。 但是如果父类中定义了有参的构造方法,并且没有定义无参构造方法。编译就会报错!!
下面这种情况就会编译报错
class
Person {
String name = "No name";
public
Person(String nm) {
name = nm;
}
}
class
Employee extends Person {
String empID = "0000";
public
Employee(String id) {
empID = id;
}
}
public
class
Test {
public
static
void
main(String args[]) {
Employee e = new
Employee("123");
System.out.println(e.empID);
}
}
修改:在子类构造方法中第一句加上 super(nm)即可 或者在父类构造方法中添加空参构造方法