Mixins(混入功能)至关于多继承,也就是说能够继承多个类,使用with关键字来实现Mixins的功能。html
那么多个类中有相同的方法时候,会被覆盖吗?覆盖的前后是什么?学习
class A{ void a(){ print("A.a()..."); } } class B{ void a(){ print("B.a()..."); } void b(){ print("B.b()..."); } }
如今新建一个类D,使得D继承A和Bspa
// 类D 继承A和B class D extends A with B{ }
执行:code
void main() { var d = new D(); d.a(); }
输出:htm
B.a()...
若是咱们改变A 和B 顺序,以下blog
// 类D 继承A和B,B在前A在后 class D extends B with A{ }
再次执行继承
void main() { var d = new D(); d.a(); }
输出:get
A.a()...
说明了:后面的类中的方法将前面的类中相同的方法覆盖it
咱们再验证三个类的状况:class
新建类 C
class C{ void a(){ print("C.a()..."); } void b(){ print("C.b()..."); } void c(){ print("C.c()..."); } }
修改类D
// 类D 继承A、B、C,A,C在前 ,B在最后 class D extends A with C,B{ }
再次执行
void main() {
var d = new D(); d.a(); }
输出:
B.a()...
再次说明:后面的类中的方法将前面的类中相同的方法覆盖。
综上,Dart中使用Mixins,能够达到多继承的效果,后面的类中的方法将前面的类中相同的方法覆盖
Dart学习系列文章:https://www.cnblogs.com/jukaiit/category/1636484.html