方法重載與重寫的區別

重載和重寫(覆蓋)的特點:

1.重寫 Override 特點

  1、重寫的方法的標誌必須要和被重寫的方法的標誌完全匹配,才能達到重寫的效果;

  2、重寫的方法的返回值必須和被重寫的方法的返回一致;

  3、重寫的方法所拋出的異常必須和被重寫方法的所拋出的異常一致,或者是其子類;

  4、被重寫的方法不能爲private,否則在其子類中只是新定義了一個方法,並沒有對其進行重寫

2.重載  Overload 特點

  1、在使用重載時只能通過不同的參數樣式。例如,不同的參數類型,不同的參數個數,不同的參數順序(當然,同一方法內的幾個參數類型必須不一樣,例如可以是fun(int, float), 但是不能爲fun(int, int));

  2、不能通過訪問權限、返回類型、拋出的異常進行重載;

  3、方法的異常類型和數目不會對重載造成影響;

  4、對於繼承來說,如果某一方法在父類中是訪問權限是priavte,那麼就不能在子類對其進行重載,如果定義的話,也只是定義了一個新方法,而不會達到重載的效果。


Override(重寫)

   1、方法名、參數、返回值相同。

   2、子類方法不能縮小父類方法的訪問權限。

   3、子類方法不能拋出比父類方法更多的異常(但子類方法可以不拋出異常)。

   4、存在於父類和子類之間。

   5、方法被定義爲final不能被重寫。

Overload(重載)

  1、參數類型、個數、順序至少有一個不相同。 

  2、不能重載只有返回值不同的方法名。

  3、存在於父類和子類、同類中。



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