您好,登錄后才能下訂單哦!
方法重載是指在一個類中定義多個同名的方法,但要求每個方法具有不同的參數(shù)的類型或參數(shù)的個數(shù)。調(diào)用重載方法時,Java編譯器能通過檢查調(diào)用的方法的參數(shù)類型和個數(shù)選擇一個恰當(dāng)?shù)姆椒ā?/p>
在Java中,子類可繼承父類中的方法,而不需要重新編寫相同的方法。但有時子類并不想原封不動地繼承父類的方法,而是想作一定的修改,這就需要采用方法的重寫。方法重寫又稱 方法覆蓋。
1、定義區(qū)別:
①重載是指不同的函數(shù)使用相同的函數(shù)名,但是函數(shù)的參數(shù)個數(shù)或類型不同。調(diào)用的時候根據(jù)函數(shù)的參數(shù)來區(qū)別不同的函數(shù)。
②覆蓋(也叫重寫)是指在派生類中重新對基類中的虛函數(shù)(注意是虛函數(shù))重新實(shí)現(xiàn)。即函數(shù)名和參數(shù)都一樣,只是函數(shù)的實(shí)現(xiàn)體不一樣。
2、類的關(guān)系區(qū)別
覆蓋是子類和父類之間的關(guān)系,是垂直關(guān)系;重載是同一個類中方法之間的關(guān)系,是水平關(guān)系。
3、產(chǎn)生方法區(qū)別
覆蓋只能由一個方法或只能由一對方法產(chǎn)生關(guān)系;重載是多個方法之間的關(guān)系。
4、參數(shù)列表要求區(qū)別
覆蓋要求參數(shù)列表相同;重載要求參數(shù)列表不同。
5、調(diào)用方法區(qū)別
覆蓋關(guān)系中,調(diào)用方法體是根據(jù)對象的類型來決定;而重載關(guān)系是根據(jù)調(diào)用時的實(shí)參表與形參表來選擇方法體的。
以上就是java重載和重寫的區(qū)別的詳細(xì)內(nèi)容,更多請關(guān)注億速云其它相關(guān)文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。