老話重提,又是重載和重寫的區(qū)別等的概念性問題,記錄下,以后萬一需要,直接查看。
重載(Overload)
每個(gè)重載的方法(或者構(gòu)造函數(shù))都必須有一個(gè)獨(dú)一無二的參數(shù)類型列表。
只能重載構(gòu)造函數(shù)
規(guī)則
重寫(Override)
能夠在需要新的子類特有行為時(shí)重新在子類中定義方法。
規(guī)則
區(qū)別:
區(qū)別點(diǎn)?????????? 重載方法???????????????????? 重寫方法
參數(shù)列表???????? 必須修改?????????????????? 一定不能修改
返回類型???????? 可以修改?????????????????? 一定不能修改
異常???????????? 可以修改??????? 可以減少或刪除,一定不能拋出新的或者更廣的異常
訪問???????????? 可以修改???????????? 一定不能做更養(yǎng)個(gè)的限制(可以降低限制)
調(diào)用
重載方法:
參數(shù)類型決定選擇哪個(gè)重載版本(根據(jù)聲明的參數(shù)類型),這發(fā)生在編譯時(shí)。被調(diào)用的實(shí)際方法仍是發(fā)生在運(yùn)行時(shí)期的虛擬方法調(diào)用。但是編譯器已經(jīng)知道所調(diào)用的方法的簽名。因此,在運(yùn)行時(shí)期,參數(shù)匹配已經(jīng)明確,只是還不知道該方法所在的實(shí)際類。
重寫方法:
對象類型(即:堆上實(shí)際實(shí)例的類型決定調(diào)用選擇哪個(gè)方法,這發(fā)生在運(yùn)行時(shí)期)

重載(Overload)
每個(gè)重載的方法(或者構(gòu)造函數(shù))都必須有一個(gè)獨(dú)一無二的參數(shù)類型列表。
只能重載構(gòu)造函數(shù)
規(guī)則
- 被重載的方法 必須 改變參數(shù)列表;
- 被重載的方法 可以 改變返回類型;
- 被重載的方法 可以 改變訪問修飾符;
- 被重載的方法 可以 聲明新的或更廣的檢查異常;
- 方法能夠在同一個(gè)類中或者在一個(gè)子類中被重載。
重寫(Override)
能夠在需要新的子類特有行為時(shí)重新在子類中定義方法。
規(guī)則
- 參數(shù)列表 必須完全 與被重寫方法的相同;
- 返回類型 必須完全 與被重寫方法的返回類型相同;
- 訪問級(jí)別的限制性 一定不能 比被重寫方法的 強(qiáng) ;
- 訪問級(jí)別的限制性可以比被重寫方法的弱;
- 重寫方法 一定不能拋出新的檢查異常或比被重寫的方法聲明的檢查異常更廣泛 的檢查異常
- 重寫的方法能夠拋出更少或更有限的異常(也就是說,被重寫的方法聲明了異常,但重寫的方法可以什么也不聲明)
- 不能重寫被標(biāo)示為final的方法 ;
- 如果不能繼承一個(gè)方法,則不能重寫這個(gè)方法。
區(qū)別:
區(qū)別點(diǎn)?????????? 重載方法???????????????????? 重寫方法
參數(shù)列表???????? 必須修改?????????????????? 一定不能修改
返回類型???????? 可以修改?????????????????? 一定不能修改
異常???????????? 可以修改??????? 可以減少或刪除,一定不能拋出新的或者更廣的異常
訪問???????????? 可以修改???????????? 一定不能做更養(yǎng)個(gè)的限制(可以降低限制)
調(diào)用
重載方法:
參數(shù)類型決定選擇哪個(gè)重載版本(根據(jù)聲明的參數(shù)類型),這發(fā)生在編譯時(shí)。被調(diào)用的實(shí)際方法仍是發(fā)生在運(yùn)行時(shí)期的虛擬方法調(diào)用。但是編譯器已經(jīng)知道所調(diào)用的方法的簽名。因此,在運(yùn)行時(shí)期,參數(shù)匹配已經(jīng)明確,只是還不知道該方法所在的實(shí)際類。
重寫方法:
對象類型(即:堆上實(shí)際實(shí)例的類型決定調(diào)用選擇哪個(gè)方法,這發(fā)生在運(yùn)行時(shí)期)
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
