dart 学习之多个接口 以及mixin学习
2023-12-21 00:03:19
如果一个类继承了多个接口,那么需要实现对应的所有方法
abstract class A {
printA();
}
abstract class B {
printB();
}
class C implements A, B {
printA() {
print("C.a");
}
printB() {
print("C.b");
}
}
mixin既不是继承也不是接口
我们来看一个例子
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。
让我们逐一讲解你的代码:
class plus {
String name;
plus(this.name);
}
这是一个简单的类plus,它具有一个带有参数的构造函数,用于初始化name属性。
mixin A {
void funA() {
print("A");
}
}
mixin B {
funB() {
print("B");
}
}
这里定义了两个mixin:A和B。Mixin是一种在类中注入功能的方式。A有一个名为funA的函数,而B有一个名为funB的函数。
class C extends plus with A, B {
C(super.name);
}
在这里,类C继承了plus类并混入了mixin A和B。构造函数C接受一个参数并通过super.name将其传递给父类plus的构造函数。这样,C类实际上包含了plus类的属性和方法,以及mixin A和B的功能。
main() {
C c = new C("lalal");
c.funA();
}
文章来源:https://blog.csdn.net/wniuniu_/article/details/135116997
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!