JAVA學(xué)習(xí):區(qū)分重寫(xiě),重載和多態(tài)。

?? 首先來(lái)看概念區(qū)分:

重寫(xiě)是子類對(duì)父類的允許訪問(wèn)方法過(guò)程實(shí)現(xiàn)重新的編寫(xiě),返回值和形參都不變。

重載是在一個(gè)類里面方法名字相同,而參數(shù)不同。返回值的類型可以是相同的也可以是不同的。

多態(tài)是同一個(gè)行為具有多個(gè)不同的表現(xiàn)形式或形態(tài)的能力。

深入解析:

重寫(xiě):重寫(xiě)也叫做覆蓋,是指父類與子類之間的關(guān)系。在子類繼承父類的過(guò)程中,如果子類的方法名如父類的方法名是相同的,那么子類就不能繼承父類的方法,此時(shí),叫做子類重寫(xiě)或者覆蓋了父類的方法。通過(guò)重寫(xiě),可以使一個(gè)方法在不同的子類中表現(xiàn)出不同的行為。


如果子類沒(méi)有重寫(xiě)父類的方法,那么子類在使用該方法時(shí)還是用的父類的方法,并且可以直接調(diào)用。

Public class Animal{

void bark(){

*************

}

}

public class? Cat? extends Animal{

void? eat(){

&&&&&&&&&

}

}

pubic class Dog extends Animal{

void eat(){

$$$$$$$$$$4

}

}

main函數(shù)

Cat? cat=new Cat();

Dog dog=new Dog();

cat.bark();

cat.eat();

dog.eat();

輸出結(jié)果:**************

????????????????? &&&&&&&&

???????????????? $$$$$$$$$$


注意:在進(jìn)行方法的重寫(xiě)時(shí),子類不能夠覆蓋父類中聲明時(shí)final或者是static的方法。

????????? 子類的方法聲明要和父類的相同,在進(jìn)行重寫(xiě)的時(shí)候。

重載:調(diào)用方法時(shí)以 對(duì)象.方法(有無(wú)參數(shù))來(lái)調(diào)用方法。雖然方法的名字相同,但是調(diào)用的方法時(shí)不同的。每個(gè)被重載的方法必須有一個(gè)獨(dú)一無(wú)二的參數(shù)列表用來(lái)區(qū)分是用到了那個(gè)方法。在方法重載中,返回值的類型不能夠作為是否重載的標(biāo)志。如:void gets()和int gets()當(dāng)調(diào)用gets()這個(gè)方法時(shí),編譯器無(wú)法識(shí)別具體調(diào)用的是哪個(gè)方法。


多態(tài):多態(tài)是基于重寫(xiě)重載之上的,是JAVA的三大特性之一。

比如:

class? Shuben{

void?? function(){

************

}

class??? Yuwen? extends? Shuben{

void function(){

&&&&&&&&&&&&&&

}

void??? color(){

^^^^^^^^^^^^

}

main?

Shuben?? a=new Yuwen()

a.function();

a.color()://這段如果有,則報(bào)錯(cuò)。如果沒(méi)有繼續(xù)執(zhí)行出結(jié)果。

}

運(yùn)行結(jié)果:*************

注釋:在使用多態(tài)來(lái)調(diào)用方法時(shí),先檢查父類中有沒(méi)有該方法,如果沒(méi)有,則報(bào)錯(cuò),編譯不能繼續(xù)運(yùn)行。如果有,則再進(jìn)行調(diào)用對(duì)應(yīng)子類中的方法。如果父類中有該方法則直接調(diào)用,子類中沒(méi)有或者沒(méi)被重寫(xiě)則直接調(diào)用。

成員變量,多態(tài)后,還都是父類的數(shù)值。

成員方法多態(tài)后如果子類有重寫(xiě)該方法則是子類的數(shù)值,如果沒(méi)有或者沒(méi)有重寫(xiě)該方法,則是父類的數(shù)值。靜態(tài)方法調(diào)用后還都是父類的數(shù)值。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容