dart學習(繼承中的構造方法)

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章