Dart语言学习(十三) Dart Mixins 实现多继承

Mixins

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
相关文章
相关标签/搜索