Dart語言詳解 8 Mixin

2021-09-25 02:54:37 字數 2074 閱讀 3230

可以理解為多繼承。

//交通工具類,擁有運輸功能

abstract class transportation

//自行車

class bicycle extends transportation

with twowheeltransportation, lowsafetyindex, bodyenergytransportation

// string safetyindex() => "low";

//// string powerunit() => "兩個輪子";

//// string energy() => "全靠腿登";

}//電單車

class motorcycle extends transportation

with twowheeltransportation, lowsafetyindex, gasolineenergytransportation

// string safetyindex() => "low";

//// string powerunit() => "兩個輪子";

//// string energy() => "汽油";

}//汽車

class car extends transportation

with

fourwheeltransportation,

middlesafetyindex,

gasolineenergytransportation

// string safetyindex() => "middle";

//// string powerunit() => "四個輪子";

//// string energy() => "汽油";

}//雙輪交通工具

class twowheeltransportation

//四輪交通工具,一般來說安全效能為中

class fourwheeltransportation

//安全指數中等的交通工具兒

class middlesafetyindex

//安全指數低的交通工具兒

class lowsafetyindex

//人力發動機

class bodyenergytransportation

//汽油能源交通工具

class gasolineenergytransportation

//四輪木製腳踏車

class woodencar extends car

// with lowsafetyindex, bodyenergytransportation

//implements lowsafetyindex, bodyenergytransportation

}列印:

自行車:

電單車:

汽車:四輪木製腳踏車:

順序問題:

void main()

//順序問題

//如果2個或多個超類擁有相同簽名的a方法,那麼子類會以繼承的最後乙個超類中的a方法為準。

//當然這是子類沒有重寫a方法的前提下,如果子類自己重寫了a方法則以本身的a方法為準

class a

class b

class p

class ab extends p with a, b {}

class ba extends p with b, a {}

class c extends p with b, a

class cc extends p with b implements a //這裡的implement只是表明要實現a的方法,這個時候具體實現是再b中mixin了具體實現

列印:

bac

b

dart變數型別詳解

1 三個單引號的作用 string str qijqowjdo 哈哈嘿嘿黑 print str 這樣使用三個單引號,輸出來換行 方便我們 而已哈 2 字串的拼接 string a 你好 string b dart print a b 輸出 你好 dart 你可以理解為 可以直接去引用變數 另外一種方...

Dart語言學習 十四 Dart泛型

什麼是泛型?通俗理解 泛型就是解決 類 介面 方法的復用性 以及對不特定資料型別的支援 型別校驗 如下 只能返回string型別的資料string getdata string value 如下 同時支援返回 string型別 和int型別 但是這麼些造成 冗餘string getdata1 str...

Dart語言學習 三 Dart數值型

數值型有num,int,double num a 10 a 12.5 print a print a.runtimetype int b 20 b 20.5 print b print b.runtimetype double c 10.5 c 30 print c print c.runtimet...