Mixin with
Mixin with 很像Java 的「功能」介面 Interface。
功能語法:
mixin 功能 {
void 功能函式() {
// 功能程式碼
}
}
擁有功能的語法:
class 類別 with 功能 {}
客制化(覆寫)功能函式語法:
class 類別 with 功能 {
@override
void 功能函式() {
// 要客制化的函式內容
}
}
假設有一個「通用」飛的功能。
1
2
3
4
5
mixin Fly {
void fly() {
print('fly');
}
}
鴨子跟飛機都要有飛的功能。
1
2
3
class Duck with Fly {}
class Airplane with Fly {}
執行鴨子飛、飛機飛的「通用」飛的功能。
1
2
3
4
5
6
void main() {
Duck duck = Duck();
duck.fly();
Airplane airplane = Airplane();
airplane.fly();
}
fly
fly
鴨子跟飛機各自寫自己的飛的方法。
1
2
3
4
5
6
7
8
9
10
11
12
13
class Duck with Fly {
@override
void fly() {
print('duck fly');
}
}
class Airplane with Fly {
@override
void fly() {
print('airplane fly');
}
}
重新執行的結果就是
duck fly
airplane fly