Extends
簡單來說就是繼承一個類別~
在Dart中,extends後面只能放一個類別
看個例子
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| abstract class Vehicle { String brand; void makeSomeNoise(); }
class Car extends Vehicle { @override void makeSomeNoise() { print("WOOOOO"); } }
class SportsCar extends Car { String brand = "Benzzz"; } void main() { SportsCar myBenzzz = new SportsCar(); print(myBenzzz.brand); myBenzzz.makeSomeNoise(); }
|
輸出:
Implements
功能類似extends
不過如果今天換作implements的話
方法要全部重新實作!!!
方法要全部重新實作!!!
方法要全部重新實作!!!
很重要說三遍
在Dart中,implements後面能加上多個類別
修改一下上面的例子
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| class Horn { void honk() { print("BAAAAA"); } }
class SportsCar implements Car, Horn { String brand = "Benzzz"; @override void makeSomeNoise() { print("YEEEEEEEEE"); } @override void honk() { print("BALABALABA"); } } void main() { SportsCar myBenzzz = new SportsCar(); print(myBenzzz.brand); myBenzzz.makeSomeNoise(); myBenzzz.honk(); }
|
輸出:
1 2 3
| Benzzz YEEEEEEEEE BALABALABA
|