这里简单记录下 java 中继承,方便日后学习。
错误代码
class Parent {
String name;
public Parent(String name) {
this.name = name;
}
}
class Children extends Parent {
}
正确代码
class Parent {
String name;
public Parent(String name) {
this.name = name;
}
}
/*
Children 类继承了 Parent 类,但是它没有显式地调用父类 Parent 的构造函数。因为 Parent 类有一个带参数的构造函数,
而没有无参数的构造函数,所以 Children 类必须显式地调用父类的构造函数来初始化父类部分的状态
Java 中的构造函数调用规则是这样的:
如果父类有一个无参数构造函数,那么子类可以不显式地调用 super(),编译器会自动插入 super(); 作为子类构造函数的第一条语句。
如果父类没有无参数构造函数,那么子类必须显式地调用父类的一个有参数的构造函数。
由于 Parent 类只有一个带参数的构造函数,因此 Children 类必须显式地调用它。否则,编译器会报错,提示你需要调用父类的构造函数
*/
class Children extends Parent {
public Children(String name) {
super(name);
}
}