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

【從零開始學 Java 程式設計】 線上教學課程目錄,使用 Java 程式語言,開發應用程式。

繼承

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

繼承種類

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() {
    System.out.println("Animal : eat");
  }
}
 
class Dog extends Animal {
  void eat() {
    System.out.println("Dog : eat");
  }
  void eatTest() {
    this.eat();   // this 呼叫自己的方法
    super.eat();  // super 呼叫父類別的方法
  }
}
 
public class HKTDemoJava {
  public static void main(String[] args) {
    Animal animal = new Animal();
    animal.eat();
    
    Dog dog = new Dog();
    dog.eatTest();
  }
}

多層初始化

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

範例:

class A{
    A(){
        System.out.println("執行A構造方法...");
    }
}
class B extends A{
    B(){
        System.out.println("執行B構造方法...");
    }
}
class C extends B{
    C(){
        System.out.println("執行C構造方法...");
    }
}
class  HKTDemoJava {
    public static void main(String[] args) {
        C c = new C();
    }
}
執行結果:
執行A構造方法...
執行B構造方法...
執行C構造方法...

那這次的課程就介紹到這邊囉~
順帶一提,KT 線上教室,臉書粉絲團,會不定期發佈相關資訊,不想錯過最新資訊,不要忘記來按讚,加追蹤喔!也歡迎大家將這套課程分享給更多人喔。
我們下次再見囉!!!掰掰~

留言

這個網誌中的熱門文章

最新入門零基礎【從零開始學 Java 程式設計】線上教學課程目錄

NS - Nintendo Switch 遊戲比價網

【從零開始學 Kotlin 程式設計】Android Kotlin 線上教學課程目錄