📅  最后修改于: 2023-12-03 15:30:22.493000             🧑  作者: Mango
在Dart中,构造函数是一种特殊的函数,它在创建类的新对象时被调用。Dart还引入了超级构造函数的概念,使构造函数的继承更加灵活。
超级构造函数是一个类的构造函数,它可以调用它的父类的构造函数。在Dart中,使用super
关键字来调用父类的构造函数。下面是一个示例:
class Person {
String name;
Person(this.name);
}
class Employee extends Person {
String job;
Employee(String name, this.job) : super(name);
}
在上面的例子中,Employee
类继承了Person
类,并调用了它的构造函数。通过调用super(name)
,Employee
类可以使用Person
类的构造函数来初始化name
属性。
超级构造函数具有以下特点:
使用超级构造函数非常简单,只需要在子类的构造函数中使用super
关键字来调用父类的构造函数。
如果父类的构造函数有参数,则需要提供与参数类型和顺序相同的参数。
class Person {
String name;
Person(this.name);
}
class Employee extends Person {
String job;
Employee(String name, this.job) : super(name);
}
如果父类的构造函数有多个构造函数,可以使用super.
的形式来调用特定的父类构造函数。
class Person {
String name;
Person(this.name);
Person.fromJson(Map<String, dynamic> json) {
name = json['name'];
}
}
class Employee extends Person {
String job;
Employee.fromJson(Map<String, dynamic> json)
: job = json['job'],
super.fromJson(json);
}
在上面的例子中,Employee
类使用super.fromJson(json)
来调用Person
类的特定构造函数,而不是默认的构造函数。
超级构造函数使得Dart的构造函数更加灵活和强大。在继承中,使用super
关键字来调用父类的特定构造函数,可以方便地初始化父类的属性,从而节省时间和精力。