? ? ? ?優(yōu)效學(xué)院,名師執(zhí)教,學(xué)習(xí)更優(yōu)效,IT在線教育領(lǐng)導(dǎo)者。三人行必有我?guī)?,人生是需要不斷學(xué)習(xí)的,在這里我們相遇就是緣分,歡迎大家加群----四六零五七零八二四----讓我們共同進步!希望各位可以看完這篇文章,也歡迎大家在下面留言討論,天冷了,也動動手指轉(zhuǎn)發(fā)收藏一下,謝謝大家!

重寫
?重寫是子類對父類的允許訪問的方法的實現(xiàn)過程進行重新編寫,返回值和形參都不能改變。重寫的好處在于子類可以根據(jù)需要,定義特定于自己的行為。也就是說子類能夠根據(jù)需要實現(xiàn)父類的方法。
重寫規(guī)則
當(dāng)子類對象的重寫方法被調(diào)用時,無論時通過子類的引用調(diào)用還是通過父類的引用調(diào)用,運行的是子類的重寫后的版本。
參數(shù)列表必須完全與被重寫方法的相同;
返回類型必須完全與被重寫方法的返回類型相同;
訪問權(quán)限不能比父類中被重寫的方法的訪問權(quán)限更低。例如:如果父類的一個方法被聲明為public,那么在子類中重寫該方法就不能聲明為protected。
聲明為final的方法不能被重寫。
聲明為static的方法不能被重寫,但是能夠被再次聲明。
子類和父類在同一個包中,那么子類可以重寫父類所有方法,除了聲明為private和final的方法。
子類和父類不在同一個包中,那么子類只能夠重寫父類的聲明為public和protected的非final方法。
構(gòu)造方法不能被重寫。
重載
重載是在一個類里面,方法名字相同,而參數(shù)不同,返回類型可以相同也可以不同。
重載規(guī)則:
被重載的方法必須改變參數(shù)列表(參數(shù)個數(shù)或類型或順序不一樣);
被重載的方法可以改變返回類型;
被重載的方法可以改變訪問修飾符;
被重載的方法可以聲明新的或更廣的檢查異常;
方法能夠在同一個類中或者在一個子類中被重載。
另外關(guān)于重載和重寫,你應(yīng)該知道以下幾點:
1、重載是一個編譯期概念、重寫是一個運行期間概念。
2、重載遵循所謂“編譯期綁定”,即在編譯時根據(jù)參數(shù)變量的類型判斷應(yīng)該調(diào)用哪個方法。
3、重寫遵循所謂“運行期綁定”,即在運行的時候,根據(jù)引用變量所指向的實際對象的類型來調(diào)用方法
4、因為在編譯期已經(jīng)確定調(diào)用哪個方法,所以重載并不是多態(tài)。而重寫是多態(tài)。重載只是一種語言特性,是一種語法規(guī)則,與多態(tài)無關(guān),與面向?qū)ο笠矡o關(guān)。(注:嚴(yán)格來說,重載是編譯時多態(tài),即靜態(tài)多態(tài)。但是,Java中提到的多態(tài),在不特別說明的情況下都指動態(tài)多態(tài))

最后,如果想有一群“臭味相投”的朋友來一起交流學(xué)習(xí)的話,歡迎大家搜索群460570824,讓我們共同進步!