gpt4 book ai didi

dart - Dart 是否支持多重继承?

转载 作者:行者123 更新时间:2023-12-05 00:43:05 29 4
gpt4 key购买 nike

Dart 支持的多重继承机制有哪些?

最佳答案

不,Dart 不支持多重实现继承。

Dart 具有接口(interface),并且与大多数其他类似语言一样,它具有多个接口(interface)继承。

对于实现,只有一个父类(super class)链可供类继承成员实现。

Dart 确实有 mixins,它允许多个类使用实现,但不像 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 被混合到两个不同的类中,有两个不同的父类(super class)。

CD 类中的每一个都只有一个父类(super class)链。 C 的父类(super class)是匿名 mixin 应用程序类 A1 和 BD 的父类(super class)是不同的 mixin 应用程序类 A2 和B。这两个类都包含 mixin 成员 B.foo

mixin 不是多重继承,但它是 Dart 中最接近的。

关于dart - Dart 是否支持多重继承?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71486826/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com