重寫(xiě)(Override)
重寫(xiě)是子類(lèi)對(duì)父類(lèi)的允許訪(fǎng)問(wèn)的方法的實(shí)現(xiàn)過(guò)程進(jìn)行重新編寫(xiě), 返回值和形參都不能改變。即外殼不變,核心重寫(xiě)!
重寫(xiě)的好處在于子類(lèi)可以根據(jù)需要,定義特定于自己的行為。 也就是說(shuō)子類(lèi)能夠根據(jù)需要實(shí)現(xiàn)父類(lèi)的方法。
重寫(xiě)方法不能拋出新的檢查異常或者比被重寫(xiě)方法申明更加寬泛的異常。例如: 父類(lèi)的一個(gè)方法申明了一個(gè)檢查異常 IOException,但是在重寫(xiě)這個(gè)方法的時(shí)候不能拋出 Exception 異常,因?yàn)?Exception 是 IOException 的父類(lèi),只能拋出 IOException 的子類(lèi)異常。
方法的重寫(xiě)規(guī)則
重載(Overload)
重載(overloading) 是在一個(gè)類(lèi)里面,方法名字相同,而參數(shù)不同。返回類(lèi)型可以相同也可以不同。
每個(gè)重載的方法(或者構(gòu)造函數(shù))都必須有一個(gè)獨(dú)一無(wú)二的參數(shù)類(lèi)型列表。
只能重載構(gòu)造函數(shù)
重載規(guī)則
| 區(qū)別點(diǎn) | 重載方法 | 重寫(xiě)方法 |
|---|---|---|
| 參數(shù)列表 | 必須修改 | 一定不能修改 |
| 返回類(lèi)型 | 可以修改 | 一定不能修改 |
| 異常 | 可以修改 | 可以減少或刪除,一定不能拋出新的或者更廣的異常 |
| 訪(fǎng)問(wèn) | 可以修改 | 一定不能做更嚴(yán)格的限制(可以降低限制) |
總結(jié)
方法的重寫(xiě)(Overriding)和重載(Overloading)是java多態(tài)性的不同表現(xiàn),重寫(xiě)是父類(lèi)與子類(lèi)之間多態(tài)性的一種表現(xiàn),重載是一類(lèi)中多態(tài)性的一種表現(xiàn)。
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持武林網(wǎng)!
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注