Dart中的mixins
生活随笔
收集整理的這篇文章主要介紹了
Dart中的mixins
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/*
mixins的中文意思是混入,就是在類中混入其他功能。在Dart中可以使用mixins實現類似多繼承的功能,with關鍵字因為mixins使用的條件,隨著Dart版本一直在變,這里講的是Dart2.x中使用mixins的條件:1、作為mixins的類只能繼承自Object,不能繼承其他類2、作為mixins的類不能有構造函數3、一個類可以mixins多個mixins類4、mixins絕不是繼承,也不是接口,而是一種全新的特性
*/class A {String info="this is A";void printA(){print("A");}
}class B {void printB(){print("B");}
}class C with A,B{}void main(){var c=new C(); c.printA();c.printB();print(c.info);} /*
mixins的中文意思是混入,就是在類中混入其他功能。在Dart中可以使用mixins實現類似多繼承的功能因為mixins使用的條件,隨著Dart版本一直在變,這里講的是Dart2.x中使用mixins的條件:1、作為mixins的類只能繼承自Object,不能繼承其他類2、作為mixins的類不能有構造函數3、一個類可以mixins多個mixins類4、mixins絕不是繼承,也不是接口,而是一種全新的特性
*/class Person{String name;num age;Person(this.name,this.age);printInfo(){print('${this.name}----${this.age}');}void run(){print("Person Run");}
}class A {String info="this is A";void printA(){print("A");}void run(){print("A Run");}
}class B { void printB(){print("B");}void run(){print("B Run");}
}class C extends Person with B,A{//如果A、B中有同樣的方法則誰在后面就執行誰的方法C(String name, num age) : super(name, age);}void main(){ var c=new C('張三',20); c.printInfo();// c.printB();// print(c.info);
c.run();} /*
mixins的實例類型是什么?很簡單,mixins的類型就是其超類的子類型。*/class A {String info="this is A";void printA(){print("A");}
}class B {void printB(){print("B");}
}class C with A,B{}void main(){ var c=new C(); print(c is C); //trueprint(c is A); //trueprint(c is B); //true// var a=new A();// print(a is Object);
}
?
轉載于:https://www.cnblogs.com/loaderman/p/11026875.html
總結
以上是生活随笔為你收集整理的Dart中的mixins的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 周一的流水账
- 下一篇: c++基础(上) 听课流水账