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
相關文章
相關標籤/搜索