接著來擴充一個物件

Dart跟Java一樣只能繼承一個父類,。

class Demo {
    String name;
    int type;
    
    Demo(this.name, this.type);
    String introduce() => "This class is $name.";
}

class Demo2 extends Demo {
    Demo(String name, int type): super(name, type);
}

void main() {
    var F = new Demo2('for demo', 5);
    print(F.introduce());
}

可以看到擴充建構子的方式是使用「:super(.....)」。

但怎麼擴衝或複寫建構子內容?這樣做明顯只是完整使用父類別的建構子而已。而且還有多重建構子的部分又要怎麼使用?

(會有這些疑問,因為本文是基於這份iT邦的網路教學的閱讀後心得寫成。)

原來只要在「super(...)」後繼續加上引號繼續編寫內容即可。例如下面這段...


DemoX() :super() { ... }

(但這是否又表示「super()」並非必須的?)


另外比較特殊的是lambda演算法式宣告的函數「introduce()」,函數前面有宣告回傳資料型態,但後方的程式碼整個直接省略return。

(這是lamdba演算法的標準寫法嗎?暫時沒有找到明確答案,但似乎是如此。)


留言

這個網誌中的熱門文章

AppScript如何串聯BloggerAPI

factory模式 (建構子)