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);
}