重載與重寫的區別


1.定義區別:

①重載是指不同的函數使用相同的函數名,但是函數的參數個數或類型不同。調用的時候根據函數的參數來區別不同的函數。

②覆蓋(也叫重寫)是指在派生類中重新對基類中的虛函數(注意是虛函數)重新實現。即函數名和參數都一樣,只是函數的實現體不一樣。

2.類的關系區別

覆蓋是子類和父類之間的關系,是垂直關系;重載是同一個類中方法之間的關系,是水平關系。

3.產生方法區別

覆蓋只能由一個方法或只能由一對方法產生關系;重載是多個方法之間的關系。

4.參數列表要求區別

覆蓋要求參數列表相同;重載要求參數列表不同。

5.調用方法區別

覆蓋關系中,調用方法體是根據對象的類型來決定;而重載關系是根據調用時的實參表與形參表來選擇方法體的。

擴展資料

方法的重寫:

1、在子類中可以根據需要對從基類中繼承來的方法進行重寫。

2、重寫的方法和被重寫的方法必須具有相同方法名稱、參數列表和返回類型。(注:返回值可以為父類中返回值的子類型.參數若為子類,則不是重寫是重載)

3、重寫方法不能使用比被重寫的方法更嚴格的訪問權限。

4. 重寫方法不能聲明拋出比被重寫方法范圍更大的異常類型。

總結:重寫是子類對所繼承父類相同方法的一種更改,這個更改需要遵循格式按照父類的格式,訪問權限,拋出異常等等,都在父類方法控制范圍內,內部具體實現可以實現不同的效果。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM