1、作為mixins的類只能繼承自object,不能繼承自其他類
2、作為mixins的類不能有構造函數
多借口繼承
abstract class A{
String name; printA(); } abstract class B{ printB(); } class C implements A,B{ @override String name; @override printA(){ print('A'); } printB(){ print('B'); } } main(){} C c = new C(); c.printA(); }
在dart中可以使用mixins實現類似多繼承的功能,mixins不是繼承,也不是接口
class A{ String fanren = '煩人'; void printA(){ print('A'); } } class B{ void printB(){ print('B'); } } class C with A,B{ //C便具有A,B中所有方法 var c = new C(); c.printA(); print(c.fanren); } //mixins的類只能繼承自object,不能繼承其他類(如果以上A繼承了其他類,那么C便不能再繼承A。A、B中沒辦法有mixins,那樣的話就沒辦法進行mixins)
class Person{ String name; num age; Person(this.name, this.age); print(){ print('$(this.name)'); } } class A{ string info = "this is A"; void printA(){ print('A'); } } class B{ void printB(){ print('B'); } } class C extends Person with A,B{ C(String name, num age):super(name,age); }
//如果A,B 中有同樣的方法,則根據繼承的順序,最終B的方法會覆蓋掉A