1、子类的构造方法默认会调用父类的无名无参构造方法
void main(){
var student = new Student();
}
class Person{
String name;
Person(){
print("Person...");
}
}
class Student extends Person{
int age;
}
运行结果:
Person...
2、如果父类没有无名无参构造方法,则需要显示调用父类的构造方法
3、在构造方法参数后使用:显示调用父类的构造方法
void main() {
var student = new Student("Tom");
print(student.name);
}
class Person {
String name;
Person(this.name);
Person.withName(this.name);
}
class Student extends Person {
int age;
//Student(String name) : super(name);
Student(String name) : super.withName(name);
}
4、构造方法的执行顺序
1)父类的构造方法在子类构造方法开始执行的位置调用
2)如果有初始化列表,初始化列表会在父类的构造方法之前执行
void main() {
var student = new Student("Tom", "Male");
print(student.name);
}
class Person {
String name;
Person(this.name);
Person.withName(this.name);
}
class Student extends Person {
int age;
final String gender;
//Student(String name) : super(name);
//Student(String name) : super.withName(name);
Student(String name, String g)
: gender = g,
super.withName(name);
}