lrn*_*lrn 12
不,Dart 不支持多重实现继承。
Dart 具有接口,并且与大多数其他类似语言一样,它具有多个接口继承。
对于实现,只有一个超类链,类可以从中继承成员实现。
Dart 确实有mixins,它允许多个类使用实现,但不像mixin application那样通过继承。
例子:
class A {
String get foo;
}
class A1 implements A {
String get foo => "A1";
}
class A2 implements A {
String get foo => "A2";
}
mixin B on A {
String get foo => "B:${super.foo}";
}
class C extends A1 with B {
String get foo => "C:${super.foo}";
}
class D extends A2 with B {
String get foo => "D:${super.foo}";
}
void main() {
print(C().foo); // C:B:A1
print(D().foo); // D:B:A2
}
Run Code Online (Sandbox Code Playgroud)
此处,同一成员B.foo混合为两个不同的类,并具有两个不同的超类。
每个类C都D只有一个超类链。的超类C是匿名mixin应用程序类A1 with B, 的超类D是独特的mixin应用程序类A2 with B。这两个类都包含 mixin 成员B.foo。
Mixins 不是多重继承,但它是 Dart 中最接近的继承。
| 归档时间: |
|
| 查看次数: |
8419 次 |
| 最近记录: |