Dart支持的多重继承机制是什么?
发布于 2022-03-15 18:08:12
不,Dart不支持多重实现继承。
Dart有接口,并且和大多数其他类似的语言一样,它具有多接口继承。
对于实现,只有一个超类链可以从类继承成员实现。
Dart确实有mixin,它允许实现被多个类使用,但不像通过混合应用程序那样通过继承使用。
示例:
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
}
在这里,同一个成员B.foo
被混合成两个不同的类,有两个不同的超类。
每个类C
和D
都只有一个超类链。C
的超类是匿名混合应用程序类A1 with B
,D
的超类是不同的混合应用程序类A2 with B
。这两个类都包含混合成员B.foo
。
Mixins不是多重继承,但它是您在Dart中最接近的。
https://stackoverflow.com/questions/71486826
复制相似问题