dart 学习之多个接口 以及mixin学习

如果一个类继承了多个接口,那么需要实现对应的所有方法

dart 复制代码
abstract class A {
  printA();
}

abstract class B {
  printB();
}

class C implements A, B {
  @override
  printA() {
    print("C.a");
  }

  @override
  printB() {
    print("C.b");
  }
}

mixin既不是继承也不是接口

我们来看一个例子

dart 复制代码
class plus {
  String name;
  plus(this.name);
}

mixin A {
  void funA() {
    print("A");
  }
}

mixin B {
  funB() {
    print("B");
  }
}

class C extends plus with A, B {
  C(super.name);
}

main() {
  C c = new C("lalal");
  c.funA();
}

在Dart中,类只能直接继承自一个类,但是可以使用 mixins 来实现类似多继承的功能。Mixins 是一种代码重用的方式,允许将一个类的功能注入到另一个类中,而不需要创建整个新的层次结构。在你的例子中,类C继承了plus类并混入了两个mixin:A和B。

让我们逐一讲解你的代码:

dart 复制代码
class plus {
  String name;
  plus(this.name);
}

这是一个简单的类plus,它具有一个带有参数的构造函数,用于初始化name属性。

dart 复制代码
mixin A {
  void funA() {
    print("A");
  }
}

mixin B {
  funB() {
    print("B");
  }
}

这里定义了两个mixin:A和B。Mixin是一种在类中注入功能的方式。A有一个名为funA的函数,而B有一个名为funB的函数。

dart 复制代码
class C extends plus with A, B {
  C(super.name);
}

在这里,类C继承了plus类并混入了mixin A和B。构造函数C接受一个参数并通过super.name将其传递给父类plus的构造函数。这样,C类实际上包含了plus类的属性和方法,以及mixin A和B的功能。

dart 复制代码
main() {
  C c = new C("lalal");
  c.funA();
}
相关推荐
Chengbei116 分钟前
内网渗透过程中搜寻指定文件内容Everything小工具
android·安全·网络安全·系统安全·密码学·网络攻击模型·安全架构
追随者永远是胜利者6 分钟前
(LeetCode-Hot100)215. 数组中的第K个最大元素
java·算法·leetcode·职场和发展·go
晔子yy7 分钟前
ReAct范式全流程详解
java·ai·react
渣瓦攻城狮9 分钟前
互联网大厂Java面试实战:核心技术与场景分析
java·大数据·redis·spring·微服务·面试·技术分享
wuqingshun31415918 分钟前
说一下JVM内存结构
java·开发语言·jvm
程序猿零零漆24 分钟前
【Spring Boot开发实战手册】掌握Springboot开发技巧和窍门(六)创建菜单和游戏界面(下)
java·spring boot·游戏
coding者在努力25 分钟前
LangChain之Prompt核心组件.2026年新版讲解,超详细
android·langchain·prompt
强子感冒了27 分钟前
JSON和XML学习笔记
xml·学习·json
甲枫叶36 分钟前
【claude产品经理系列11】实现后端接口——数据在背后如何流动
java·数据库·人工智能·产品经理·ai编程·visual studio code
甲枫叶38 分钟前
【claude产品经理系列12】接入数据库——让数据永久保存
java·数据库·人工智能·产品经理·ai编程