java繼承是面向?qū)ο蟮淖铒@著的一個(gè)特征,它和多態(tài)都是Java中重要知識(shí)點(diǎn),因此我們作為程序員一定要了解它們之間的聯(lián)系,這樣才能正確使用,那么下面我們就給大家講解一下。
繼承,子類(lèi)繼承父類(lèi)中所以的屬性和方法,但是對(duì)于private的屬相和方法,由于這個(gè)是父類(lèi)的隱私,所以子類(lèi)雖然是繼承了,但是沒(méi)有可以訪(fǎng)問(wèn)這些屬性和方法的引用,所以相當(dāng)于沒(méi)有繼承到。很多時(shí)候,可以理解為,沒(méi)有繼承。
多態(tài):就是父類(lèi)引用可以持有子類(lèi)對(duì)象。這時(shí)候只能調(diào)用父類(lèi)中的方法,而子類(lèi)中特有方法是無(wú)法訪(fǎng)問(wèn)的,因?yàn)檫@個(gè)時(shí)候(編譯時(shí)、你把他看作父類(lèi)對(duì)象的原因,但是到了運(yùn)行的時(shí)候,編譯器就會(huì)發(fā)現(xiàn)這個(gè)父類(lèi)引用中原來(lái)是一個(gè)子類(lèi)的對(duì)像,所以如果父類(lèi)和子類(lèi)中有相同的方法時(shí),調(diào)用的會(huì)是子類(lèi)中的方法,而不是父類(lèi)的。
在Java中也可以這么說(shuō):編譯時(shí)看父類(lèi),運(yùn)行時(shí)看子類(lèi)。
java繼承有什么優(yōu)勢(shì)?
1、繼承關(guān)系是傳遞的。若類(lèi)C繼承類(lèi)B,類(lèi)B繼承類(lèi)A(多層繼承、,則類(lèi)C既有從類(lèi)B那里繼承下來(lái)的屬性與方法,也有從類(lèi)A那里繼承下來(lái)的屬性與方法,還可以有自己新定義的屬性和方法。繼承來(lái)的屬性和方法盡管是隱式的,但仍是類(lèi)C的屬性和方法。繼承是在一些比較一般的類(lèi)的基礎(chǔ)上構(gòu)造、建立和擴(kuò)充新類(lèi)的最有效的手段。
2、繼承簡(jiǎn)化了人們對(duì)事物的認(rèn)識(shí)和描述,能清晰體現(xiàn)相關(guān)類(lèi)間的層次結(jié)構(gòu)關(guān)系。
3、繼承提供了軟件復(fù)用功能。若類(lèi)B繼承類(lèi)A,那么建立類(lèi)B時(shí)只需要再描述與基類(lèi)(類(lèi)A)不同的少量特征(數(shù)據(jù)成員和成員方法)即可。這種做法能減小代碼和數(shù)據(jù)的冗余度,大大增加程序的重用性。
4、繼承通過(guò)增強(qiáng)一致性來(lái)減少模塊間的接口和界面,大大增加了程序的易維護(hù)性。
5、提供多重繼承機(jī)制。從理論上說(shuō),一個(gè)類(lèi)可以是多個(gè)一般類(lèi)的特殊類(lèi),它可以從多個(gè)一般類(lèi)中繼承屬性與方法,這便是多重繼承。Java出于安全性和可靠性的考慮,僅支持單重繼承,而通過(guò)使用接口機(jī)制來(lái)實(shí)現(xiàn)多重繼承。
繼承就是子類(lèi)繼承父類(lèi)的特征和行為,繼承關(guān)系是傳遞的,有了繼承能清晰體現(xiàn)相關(guān)類(lèi)間的層次結(jié)構(gòu)關(guān)系,方便大家更好的開(kāi)發(fā)。最后大家如果想要了解更多java初識(shí)知識(shí),敬請(qǐng)關(guān)注賦能網(wǎng)。
本文鏈接:
本文章“java中繼承和多態(tài)之間有何聯(lián)系?java繼承有什么優(yōu)勢(shì)?”已幫助 75 人
免責(zé)聲明:本信息由用戶(hù)發(fā)布,本站不承擔(dān)本信息引起的任何交易及知識(shí)產(chǎn)權(quán)侵權(quán)的法律責(zé)任!
本文由賦能網(wǎng) 整理發(fā)布。了解更多培訓(xùn)機(jī)構(gòu)》培訓(xùn)課程》學(xué)習(xí)資訊》課程優(yōu)惠》課程開(kāi)班》學(xué)校地址等機(jī)構(gòu)信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細(xì)解答:
咨詢(xún)熱線(xiàn):4008-569-579