Dart 编程中的超级构造函数
子类可以继承超类的方法和变量,但不能继承超类的构造函数。超类构造函数只能通过使用构造函数来调用。 super()
该构造函数允许一个子类的构造函数显式调用没有参数和超参数化的构造。 super()
语法
Subclassconstructor():super(){ }
但是,甚至不需要使用super()关键字,因为编译器会自动或隐式地为我们做同样的事情。
当使用new关键字创建新类的对象时,它会调用子类构造函数,该构造函数隐式调用父类的默认构造函数。
让我们使用一个例子,我们有一个父类(或超类)和一个子类,这两个类都有两个构造函数,当我们为子类创建一个对象时,也会隐式调用父类内部的构造函数。
示例
考虑下面显示的例子-
class SuperClass { SuperClass(){ print("Constructor of Parent Class"); } } class SubClass extends SuperClass { SubClass(){ print("Constructor of Sub Class"); } void display(){ print("子类里面!!"); } } void main(){ SubClass obj= new SubClass(); obj.display(); //调用子类方法 }输出结果
Constructor of Parent Class Constructor of Sub Class 子类里面!!