古詩詞大全網 - 藝術簽名 - java重載和重寫的區別

java重載和重寫的區別

1.定義區別:

①重載是指不同的函數使用相同的函數名,但函數的參數個數或類型不同。調用時,不同的函數根據其參數進行區分。

②覆蓋(也叫重寫)是指在派生類中重新實現基類中的虛函數(註意是虛函數)。也就是說,函數名和參數是壹樣的,但是函數的實現是不壹樣的。

2.階級之間的關系是不同的

覆蓋是子類和父類的關系,是縱向的;重載是同壹個類中方法之間的關系,是壹種橫向關系。

3.方法差異

重寫只能由壹個方法或壹對方法生成;重載是多個方法之間的關系。

4.參數列表需要區分

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

5.調用方法差異

在疊加關系中,根據對象的類型確定調用方法體;重載關系在調用時根據實參表和形參表選擇方法體。

擴展數據

方法的覆蓋:

1.在子類中,從基類繼承的方法可以根據需要重寫。

2.被重寫的方法和被重寫的方法必須具有相同的方法名、參數列表和返回類型。(註意:返回值可以是父類中返回值的子類型。如果參數是壹個子類,它就不是壹個重寫而是壹個重載。)

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

4.被重寫的方法不能聲明它引發的異常類型大於被重寫方法的範圍。

總結:重寫是子類對從父類繼承的同壹方法的壹種改變。這種改變需要根據父類的格式、訪問權限、拋出異常等遵循格式。,這些都在父類方法的控制範圍內,內部具體實現可以達到不同的效果。