首頁  >  文章  >  Java  >  Java中的層次繼承

Java中的層次繼承

WBOY
WBOY原創
2024-08-30 15:26:03951瀏覽

Java 中的層次繼承是 Java 中的繼承型別之一。繼承是物件導向程式設計系統(oops)的重要特徵之一。繼承是一種機制,其中一個類別繼承或取得其他類別的所有屬性和行為。繼承屬性和行為的類別稱為父類別、超類別或基底類,繼承屬性和行為的類別稱為子類別或衍生類別。在層次繼承中,多個子類別繼承單一類別,或單一類別被多個子類別繼承。 Java 中繼承的使用是為了程式碼的可重複使用性和動態多態性(方法重寫)。

它在 Java 中是如何運作的?

借助下圖,我們可以更清楚地理解層次繼承。

廣告 該類別中的熱門課程 JAVA 掌握 - 專業化 | 78 課程系列 | 15 次模擬測驗

Java中的層次繼承

如上例圖所示,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 中層次繼承的範例

以下是不同的範例:

範例#1

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);
}
}

輸出:

Java中的層次繼承

如上面的程式碼,PermanentEmp類別和TemporaryEmp類別是子類,Employee是超類,這些子類別的物件都在存取超類別的變量,這體現了Java中的層次繼承的概念或特性。

範例#2

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();
}
}

輸出:

Java中的層次繼承

如上面的程式碼,PermanentEmp 類別和 TemporaryEmp 類別是子類,Employee 是超類,這些子類別的物件都會呼叫超類別的方法,這體現了 Java 中的層次繼承概念或特性。

範例#3

例如使用 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();
}
}

輸出:

Java中的層次繼承

如上面的程式碼,PermanentEmp 類別和 TemporaryEmp 類別是子類,Employee 是超類,在子類別方法中,呼叫超類別方法,並以 super 關鍵字為前綴。 super關鍵字是Java中的引用變量,用於引用父類別物件的變數和方法。在main方法中,子類別的物件呼叫自己的方法,這再次體現了Java中的概念或特性。

結論

繼承是一種特性,其中一個類別繼承另一個類別的所有屬性和行為。 Java 中的繼承類型之一是 Java 中的層次繼承。在層次繼承中,多個類別從單一類別繼承屬性和方法。

以上是Java中的層次繼承的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn