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>
層次繼承範例
當兩個或多個類別繼承單一類別時,稱為層次繼承。在下面的範例中,Dog
和 Cat
類別都繼承了 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中文網其他相關文章!