Java 中的層次繼承是 Java 中的繼承型別之一。繼承是物件導向程式設計系統(oops)的重要特徵之一。繼承是一種機制,其中一個類別繼承或取得其他類別的所有屬性和行為。繼承屬性和行為的類別稱為父類別、超類別或基底類,繼承屬性和行為的類別稱為子類別或衍生類別。在層次繼承中,多個子類別繼承單一類別,或單一類別被多個子類別繼承。 Java 中繼承的使用是為了程式碼的可重複使用性和動態多態性(方法重寫)。
借助下圖,我們可以更清楚地理解層次繼承。
廣告 該類別中的熱門課程 JAVA 掌握 - 專業化 | 78 課程系列 | 15 次模擬測驗如上例圖所示,ClassB 和 ClassC 繼承同一個或單一類別 ClassA。因此 ClassA 的變數和方法在 ClassB 和 ClassC 兩個類別中都被重複使用。上圖顯示,多個子類別擁有相同的父類,因此這種繼承方式稱為層次繼承。
Java 中單繼承的語法:
class Subclassname1 extends Superclassname { // variables and methods }
Java 中層次繼承的語法:
class Subclassname1 extends Superclassname { // variables and methods } class Subclassname2 extends Superclassname { // variables and methods }
「擴充」的意思是增加功能。 extends關鍵字表示繼承;也就是說,我們正在建立一個從現有類別派生的新類別。
以下是不同的範例:
Java 中從超類別繼承變數的層次繼承範例。接下來,我們透過以下範例編寫 Java 程式碼來理解層次繼承,從超類別繼承變數。
代碼:
package P1; class Employee{ float salary = 40000; } class PermanentEmp extends Employee{ double hike = 0.5; } class TemporaryEmp extends Employee{ double hike = 0.35; } public class HerInheritanceDemo { public static void main(String args[]){ PermanentEmp p = new PermanentEmp(); TemporaryEmp t = new TemporaryEmp(); // All objects of inherited classes can access the variable of class Employee System.out.println("Permanent Employee salary is :" +p.salary); System.out.println("Hike for Permanent Employee is:" +p.hike); System.out.println("Temporary Employee salary is :" +t.salary); System.out.println("Hike for Temporary Employee is :" +t.hike); } }
輸出:
如上面的程式碼,PermanentEmp類別和TemporaryEmp類別是子類,Employee是超類,這些子類別的物件都在存取超類別的變量,這體現了Java中的層次繼承的概念或特性。
Java 中層次繼承的範例,從超類別繼承方法。接下來,我們透過以下範例編寫 Java 程式碼,以便更清楚地理解 Java 中的這一點。
代碼:
package P1; class Employee{ float salary = 40000; void dispSalary() { System.<em><i>out</i></em>.println("The Employee salary is :" +salary); } } class PermanentEmp extends Employee{ double hike = 0.5; void incrementSalary() { System.out.println("The Permanent Employee incremented salary is :" +(salary+(salary * hike))); } } class TemporaryEmp extends Employee{ double hike = 0.35; void incrementSalary() { System.out.println("The Temporary Employee incremented salary is :" +(salary+(salary * hike))); } } public class HerInheritanceDemo { public static void main(String args[]){ PermanentEmp p = new PermanentEmp(); TemporaryEmp t = new TemporaryEmp(); // All objects of inherited classes can access the method of class Employee p.dispSalary(); p.incrementSalary(); t.dispSalary(); t.incrementSalary(); } }
輸出:
如上面的程式碼,PermanentEmp 類別和 TemporaryEmp 類別是子類,Employee 是超類,這些子類別的物件都會呼叫超類別的方法,這體現了 Java 中的層次繼承概念或特性。
例如使用 super 關鍵字呼叫超類別的方法。接下來,我們重寫上面的 Java 程式碼,透過以下範例更清楚地了解 super 關鍵字的作用。
代碼:
package P1; class Employee{ float salary = 40000; void dispSalary() { System.out.println("The Employee salary is :" +salary); } } class PermanentEmp extends Employee{ double hike = 0.5; void incrementSalary() { super.dispSalary(); System.out.println("The Permanent Employee incremented salary is :" +(salary+(salary * hike)) ); } } class TemporaryEmp extends Employee{ double hike = 0.35; void incrementSalary() { super.dispSalary(); System.out.println("The Temporary Employee incremented salary is :" +(salary+(salary * hike)) ); } } public class HerInheritanceDemo { public static void main(String args[]){ PermanentEmp p = new PermanentEmp(); TemporaryEmp t = new TemporaryEmp(); // All objects of inherited classes can access the variable of class Employee p.incrementSalary(); t.incrementSalary(); } }
輸出:
如上面的程式碼,PermanentEmp 類別和 TemporaryEmp 類別是子類,Employee 是超類,在子類別方法中,呼叫超類別方法,並以 super 關鍵字為前綴。 super關鍵字是Java中的引用變量,用於引用父類別物件的變數和方法。在main方法中,子類別的物件呼叫自己的方法,這再次體現了Java中的概念或特性。
繼承是一種特性,其中一個類別繼承另一個類別的所有屬性和行為。 Java 中的繼承類型之一是 Java 中的層次繼承。在層次繼承中,多個類別從單一類別繼承屬性和方法。
以上是Java中的層次繼承的詳細內容。更多資訊請關注PHP中文網其他相關文章!