首頁 > Java > java教程 > 遺產

遺產

Linda Hamilton
發布: 2025-01-19 18:08:10
原創
192 人瀏覽過

Java繼承機制詳解:建構物件導向程式的基石

Java中的繼承機制允許一個物件繼承父物件的全部屬性和行為,是物件導向程式設計 (OOPs) 的核心概念。 透過繼承,我們可以建立基於現有類別的全新類,重複使用父類的方法和字段,並在此基礎上添加新的方法和字段。

什麼是繼承?

Java繼承機制允許一個類別(子類別或衍生類別)繼承另一個類別(超類別或父類別)的屬性和方法。 子類別可以存取超類別的成員(欄位和方法),強制執行複用規則,並促進類別的層次結構。 繼承體現了「IS-A」關係,也稱為父子關係。

為什麼要使用Java繼承?

  • 程式碼重複使用: 繼承顯著提高程式碼重複使用性,避免重複編寫相同的功能碼。
  • 方法重寫 (實現運行時多態性): (待補充)

繼承相關的術語

  • 類別: 具有共同屬性的物件集合,是建立物件的範本或藍圖。
  • 子類別/子類別: 繼承其他類別的類,也稱為衍生類別、擴充類別或子類別。
  • 超類/父類: 子類繼承特徵的類,也稱為基類或父類。
  • 復用性: 在建立新類別時重複使用現有類別欄位和方法的機制。

Java繼承的語法

<code class="language-java">class 子类名称 extends 超类名称 {
    // 方法和字段
}</code>
登入後複製
登入後複製

extends 關鍵字表示建立一個從現有類別派生的新類別。 「extends」 的意思是擴充功能。 在Java術語中,被繼承的類別稱為父類別或超類,新類別稱為子類別或子類別。

遺產

上圖顯示,Programmer 是子類,Employee 是超類。兩者之間的關係是 Programmer IS-A Employee,表示程式設計師是一種員工。

範例:Programmer.java

<code class="language-java">class Employee {
    float salary = 40000;
}

class Programmer extends Employee {
    int bonus = 10000;

    public static void main(String args[]) {
        Programmer p = new Programmer();
        System.out.println("程序员薪资:" + p.salary);
        System.out.println("程序员奖金:" + p.bonus);
    }
}</code>
登入後複製
登入後複製

Java繼承的型別

根據類別的繼承關係,Java繼承主要分為三種類型:單一繼承、多層繼承和層次繼承。

遺產

注意:Java不支援透過類別實作多繼承。

當一個類別繼承多個類別時,稱為多繼承。例如:Java中的多重繼承

遺產

單一繼承範例

當一個類別繼承另一個類別時,稱為單繼承。在下面的範例中,Dog 類別繼承了 Animal 類,因此是單一繼承。

Test遺產.java

<code class="language-java">class Animal {
    void eat() {
        System.out.println("正在吃...");
    }
}

class Dog extends Animal {
    void bark() {
        System.out.println("汪汪...");
    }
}

class Test遺產 {
    public static void main(String args[]) {
        Dog d = new Dog();
        d.bark();
        d.eat();
    }
}</code>
登入後複製

多層繼承範例

當存在繼承鏈時,稱為多層繼承。在下面的範例中,BabyDog 類別繼承了 Dog 類,而 Dog 類別又繼承了 Animal 類,因此是多層繼承。

Test遺產2.java

<code class="language-java">class 子类名称 extends 超类名称 {
    // 方法和字段
}</code>
登入後複製
登入後複製

層次繼承範例

當兩個或多個類別繼承單一類別時,稱為層次繼承。在下面的範例中,DogCat 類別都繼承了 Animal 類,因此是層次繼承。

Test遺產3.java

<code class="language-java">class Employee {
    float salary = 40000;
}

class Programmer extends Employee {
    int bonus = 10000;

    public static void main(String args[]) {
        Programmer p = new Programmer();
        System.out.println("程序员薪资:" + p.salary);
        System.out.println("程序员奖金:" + p.bonus);
    }
}</code>
登入後複製
登入後複製

為什麼Java不支援多繼承? (待補充)

為了降低複雜度並簡化語言,Java 不支援透過類別實作多繼承。

方法重寫與方法重載

  • 方法重寫: 子類別提供對父類別中已宣告方法的特定實作。
  • 方法重載: 在同一類別中,方法名稱相同,但參數數量或類型不同。

final 關鍵字的作用

final 關鍵字用來防止方法重寫和類別擴充:

  • final 欄位:不能重新賦值。
  • final 方法:不能被重寫。
  • final 類別:不能被繼承。

參考連結:https://www.php.cn/link/9b4192ee086949047cfc64d86d895c2e

以上是遺產的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板