java中關於重載和重寫的理解

重寫(覆蓋/overWrite):是發生在子類和父類之間的,子類重寫父類的方法。

規則:方法名字,方法的參數(參數的個數,類型,順序),返回類型必須一樣,異常不能被擴大,可見性不能縮小。

重寫方法只能存在於具有繼承關係中,重寫方法只能重寫父類非私有的方法。

子類可以和父類用相同名字的靜態方法,方法名,參數類型都一樣,很像重載,但不是重載,不存在多態。


解釋爲什麼異常不能被擴大,可見性不能被縮小?

因爲如果子類拋出比父類更大的異常,那麼在多態的時候(即父類的引用指向子類的對象),父類就不能捕獲子類拋出的異常了。所有,異常不能被擴大。

可見性不能被縮小是因爲,也是在多態的時候,如果子類的方法的可見性連父類都看不到了,那麼父類的引用就不能指向子類的對象了。所以,可見性不能被縮小。


重載:發生在本類中。兩個方法的名稱一樣,但參數列表必須不一樣。參數列表包括:(參數的類型,個數,順序)

規則:

1、必須具有不同的參數列表;

2、可以有不同的返回類型,只要參數列表不同就可以了;

3、可以有不同的訪問修飾符;

4、可以拋出不同的異常;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章