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();
}
相关推荐
吴声子夜歌9 分钟前
小程序——界面API(一)
java·javascript·小程序
予枫的编程笔记13 分钟前
【面试专栏|Java并发编程】从Runnable到Callable,Java4种线程创建方式
java·多线程·thread·java面试·runnable·callable·java线程
2301_8008951013 分钟前
二分学习--备战蓝桥杯版h
学习
ZCollapsar.15 分钟前
C++从入门到入土 (5):.C/C++内存管理
c语言·c++·学习
野犬寒鸦16 分钟前
SAP后端实习开发面试:操作系统与网络核心考点及Linux与Redis
java·服务器·网络·后端·面试
ServBay18 分钟前
代码减半,10分钟彻底告别 Java 开发旧习
java·后端
future021021 分钟前
Spring 核心原理学习路线(完结汇总):7 篇文章串起 IOC、AOP、事务与 Boot
后端·学习·spring
青桔柠薯片27 分钟前
数据库编程:从SQLite基础到C语言集成
linux·数据库·学习·sqlite
MegaDataFlowers28 分钟前
CRUD操作及配置解析
java·mybatis
毕设源码-邱学长34 分钟前
【开题答辩全过程】以 胡小楼行政村农用灌溉机井预约管理系统的设计与实现为例,包含答辩的问题和答案
java·eclipse