您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)java中繼承指的是什么,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
java中繼承是什么?
Java中的繼承是一個(gè)對(duì)象獲取父對(duì)象的所有屬性和行為的機(jī)制。它是面向?qū)ο缶幊滔到y(tǒng)(OOP)的重要組成部分。
Java中繼承的思想是,創(chuàng)建基于現(xiàn)有類(lèi)的新類(lèi)。從現(xiàn)有類(lèi)中繼承,可以重用父類(lèi)的方法和字段。此外,還可以在當(dāng)前類(lèi)中添加新方法和字段。【相關(guān)視頻教程推薦:Java教程】
繼承表示IS-A關(guān)系,也稱(chēng)為父子關(guān)系。
繼承中使用的術(shù)語(yǔ)
1、類(lèi):類(lèi)是具有共同屬性的一組對(duì)象。它是創(chuàng)建對(duì)象的模板或藍(lán)圖。
2、子類(lèi):子類(lèi)是繼承其他類(lèi)的類(lèi)。它也稱(chēng)為派生類(lèi),擴(kuò)展類(lèi)或子類(lèi)。
3、超類(lèi)/父類(lèi):超類(lèi)是子類(lèi)繼承功能的類(lèi)。它也稱(chēng)為基類(lèi)或父類(lèi)。
4、可重用性:正如名稱(chēng)所指定的那樣,可重用性是一種機(jī)制,可以幫助您在創(chuàng)建新類(lèi)時(shí)重用現(xiàn)有類(lèi)的字段和方法。您可以使用上一課程中已定義的相同字段和方法。
為什么在java中使用繼承?
1、可以實(shí)現(xiàn)方法重寫(xiě)(這樣可以實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性)。
2、繼承允許我們重用代碼,它提高了Java應(yīng)用程序的可重用性。
Java繼承的實(shí)現(xiàn)
Java繼承的基本語(yǔ)法
要繼承一個(gè)類(lèi),我們使用extends關(guān)鍵字。這里的類(lèi)XYZ是子類(lèi),類(lèi)ABC是父類(lèi)。XYZ類(lèi)繼承了ABC類(lèi)的屬性和方法。
class Subclass-name extends Superclass-name { //方法和字段 }
extends關(guān)鍵字表示我們正在創(chuàng)建一個(gè)從現(xiàn)有類(lèi)中派生的新類(lèi)。“extends”的含義是增加功能性。
在Java術(shù)語(yǔ)中,被繼承的類(lèi)稱(chēng)為父類(lèi)或超類(lèi),新類(lèi)稱(chēng)為子類(lèi)。
繼承示例:
在下面的繼承示例中,類(lèi)Bicycle是一個(gè)基類(lèi),類(lèi)MountainBike是一個(gè)派生類(lèi),它擴(kuò)展了Bicycle類(lèi),而類(lèi)Test是一個(gè)運(yùn)行程序的驅(qū)動(dòng)程序類(lèi)。
//用java程序來(lái)說(shuō)明 // 繼承的概念 // 基類(lèi) class Bicycle { // Bicycle類(lèi)有兩個(gè)字段 public int gear; public int speed; // Bicycle類(lèi)有一個(gè)構(gòu)造函數(shù) public Bicycle(int gear, int speed) { this.gear = gear; this.speed = speed; } // Bicycle類(lèi) 有三種方法 public void applyBrake(int decrement) { speed -= decrement; } public void speedUp(int increment) { speed += increment; } // toString()方法來(lái)輸出 Bicycle類(lèi)信息 public String toString() { return("沒(méi)有的齒輪個(gè)數(shù)是 "+gear +"\n" + "自行車(chē)的速度是"+speed); } } // 派生類(lèi) class MountainBike extends Bicycle { // MountainBike子類(lèi)增加一個(gè)字段 public int seatHeight; // MountainBike子類(lèi) 有一種構(gòu)造函數(shù) public MountainBike(int gear,int speed, int startHeight) { // 調(diào)用基類(lèi)(Bicycle類(lèi))構(gòu)造函數(shù) super(gear, speed); seatHeight = startHeight; } // MountainBike子類(lèi)增加一個(gè)方法 public void setHeight(int newValue) { seatHeight = newValue; } // 重寫(xiě)toString()方法 // 輸出跟多Bicycle類(lèi)信息 @Override public String toString() { return (super.toString()+ "\n 座位高度為 "+seatHeight); } } // 驅(qū)動(dòng)程序類(lèi) public class Test { public static void main(String args[]) { MountainBike mb = new MountainBike(3, 100, 25); System.out.println(mb.toString()); } }
輸出:
Java中的繼承類(lèi)型
在類(lèi)的基礎(chǔ)上,java中可以有三種類(lèi)型的繼承:?jiǎn)我唬嗉?jí)和分層。
1、單一繼承:在單一繼承中,子類(lèi)繼承一個(gè)超類(lèi)的特征。在下圖中,類(lèi)A充當(dāng)派生類(lèi)B的基類(lèi)。
2、多級(jí)繼承: 在多級(jí)繼承中,派生類(lèi)將繼承基類(lèi),并且派生類(lèi)也充當(dāng)其他類(lèi)的基類(lèi)。在下面的圖像中,類(lèi)A用作派生類(lèi)B的基類(lèi),后者又用作派生類(lèi)C的基類(lèi)。在Java中,類(lèi)不能直接訪問(wèn)祖父母的成員。
3、分層繼承:在分層繼承中,一個(gè)類(lèi)充當(dāng)多個(gè)子類(lèi)的超類(lèi)(基類(lèi))。在下面的圖像中,類(lèi)A充當(dāng)派生類(lèi)B,C和D的基類(lèi)。
4、多重繼承(通過(guò)接口):在多重繼承中,一個(gè)類(lèi)可以具有多個(gè)超類(lèi),并從所有父類(lèi)繼承功能。請(qǐng)注意,Java并沒(méi)有支持多重繼承與類(lèi)。在java中,我們只能通過(guò) Interfaces實(shí)現(xiàn)多重繼承。在下圖中,C類(lèi)來(lái)自界面A和B。
5、混合繼承(通過(guò)接口):它是兩種或多種上述類(lèi)型的繼承的混合。由于java不支持使用類(lèi)進(jìn)行多重繼承,因此類(lèi)也無(wú)法實(shí)現(xiàn)混合繼承。在java中,我們只能通過(guò)Interfaces實(shí)現(xiàn)混合繼承。
關(guān)于java中繼承指的是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。