首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Dart支持多重继承吗?

Dart支持多重继承吗?
EN

Stack Overflow用户
提问于 2022-03-15 17:52:08
回答 1查看 2.2K关注 0票数 3

Dart支持的多重继承机制是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-15 18:08:12

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

Dart有接口,并且和大多数其他类似的语言一样,它具有多接口继承。

对于实现,只有一个超类链可以从类继承成员实现。

Dart确实有mixin,它允许实现被多个类使用,但不像通过混合应用程序那样通过继承使用。

示例:

代码语言:javascript
运行
复制
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被混合成两个不同的类,有两个不同的超类。

每个类CD都只有一个超类链。C的超类是匿名混合应用程序类A1 with BD的超类是不同的混合应用程序类A2 with B。这两个类都包含混合成员B.foo

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

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71486826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档