【從零開始學 Dart 程式設計】繼承

【從零開始學 Dart 程式設計】線上教學課程目錄 ,Flutter 先修班, Dart 程式語言基礎入門課程。

繼承

繼承,在人類的世界當中簡單的定義是父親或家族之前打拼下來的江山,傳給下一代。下一代的兒女、子孫,將繼承擁有上一代的財產或事業。在程式當中可以定義一個子類別透過關鍵字 extends 來繼承父類別所定義屬性欄位、方法等功能。如果父類別有不符合的功能卻想要用同樣的方法名稱,可以完全覆寫父類別的方法。

繼承語法

透過 extends 關鍵字繼承父類別,子類別將會擁有父類別中的屬性與方法。

class  父類別名稱{
    // todo sth...
}

class 子類別名稱 extends 父類別名稱{
    // todo sth...
}

繼承種類

範例

//父類別
class Animal{
    int weight;//體重
    int age;//年齡
    
    //移動
    void move(){
         // todo sth...
    } 
}
//子類別
class Dog extends Animal{
     // todo sth...
}

//子類別
class Bird extends Animal{
    void fly(){
    
    }
}

父類別,有點像公版或是一個很底層的基礎建設,大家都用的到,可以將共用的提出來放在父類別上,不用各自子類別又重覆定義,寫相同的程式碼。以此範例,我們先定義一個 Animal 動物的父類別,父類別有體重和年齡的屬性欄位,還有一個移動的方法。當子類別繼承此父類別,將擁有這些屬性欄位和方法。而各自子類別,可以再根據當下的功能需求,各自定義自己的功能。

再舉一例,如果你覺得 Java 原生的按鈕很難用,你可以繼承原本按鈕的功能外,可以在為自己或客戶打造更好用的按鈕。

super 和 this

super 關鍵字:透過 super 關鍵字來存取父類別屬性欄位或呼叫父類別方法。
this 關鍵字:透過 this 關鍵字,指定為自己的屬性欄位或自己的方法。

範例:

class Animal {
  void eat() {
    print("Animal : eat");
  }
}

class Dog extends Animal {
  void eat() {
    print("Dog : eat");
  }

  void eatTest() {
    this.eat(); // this 呼叫自己的方法
    super.eat(); // super 呼叫父類別的方法
  }
}

void main() {
  Animal animal = new Animal();
  animal.eat();

  Dog dog = new Dog();
  dog.eatTest();
}

輸出結果

Animal : eat
Dog : eat
Animal : eat

多層初始化

我們在「類別」一節中,了解到,當我們將類別實體化成物件時,會進行構造方法初始化的動作。而如果是多層繼承,初始化順序,當然是從父親先初始化在繼續往下子類別延續下去初始化。

範例:

class A{
    A(){
        print("執行A構造方法...");
    }
}
class B extends A{
    B(){
        print("執行B構造方法...");
    }
}
class C extends B{
    C(){
        print("執行C構造方法...");
    }
}

void main() {
        C c = new C();
}

執行結果:

執行A構造方法...
執行B構造方法...
執行C構造方法...

那這次的課程就介紹到這邊囉~

順帶一提,KT 線上教室,臉書粉絲團,會不定期發佈相關資訊,不想錯過最新資訊,不要忘記來按讚,加追蹤喔!也歡迎大家將這套課程分享給更多人喔。

我們下次再見囉!!!掰掰~

這個網誌中的熱門文章

最新入門零基礎 Java 教學【從零開始學 Java 程式設計】Java教學課程目錄 (IntelliJ IDEA 開發教學)

2023 最新入門零基礎 Kotlin教學【從零開始學 Kotlin 程式設計】Kotlin 教學課程目錄 (Android Kotlin, IntelliJ IDEA, Android Studio, Android APP 開發教學)

nano 文字編輯器

Android Studio 歷代版本下載點

2022 最新入門零基礎 Flutter教學 【Flutter 程式設計入門實戰 30 天】Flutter 教學課程目錄 (IntelliJ IDEA 開發教學)