1. 程式人生 > >java中的重載和重寫

java中的重載和重寫

pri 根據 使用 編輯 繼承 定義 方法 單獨 子類

1.重載:可以在同一個類中存在多個函數,函數名稱相同但參數列表(參數個數,參數類型,參數順序)不同, 不能通過方法返回值類型,訪問權限以及拋出異常來定義重載.

2.重寫: “重寫(覆蓋)”概念存在於繼承關系中,子類可繼承父類中的方法而不需要單獨編輯,這提供便捷化。但有的時侯,子類不想原封不動地繼承父類的方法,而是想作一定的修改,這就需要采用方法的重寫。

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

重寫的方法和被重寫的方法必須具有相同方法名稱、參數列表和返回類型

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

3.區別:

1). Override 特點

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

  2、覆蓋的方法的返回值必須和被覆蓋的方法的返回一致;

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

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

2).Overload 特點

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

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

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

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

java中的重載和重寫