重寫 override)和過載(overload

2022-08-14 18:39:18 字數 974 閱讀 5652

摘要:首先重寫和過載都是多型的一種體現方式。過載是編譯期間的活動,重寫是執行期間的活動;其次,過載是在乙個類中定義相同的名字的方法,方法的引數列表或者型別要互相不同,但是返回值型別不作為是否過載的標準,可以修改可見性;重寫是不同的,要求子類重寫基類的方法時要與父類方法具有相同的引數型別和返回值,可見性需要大於等於基類的方法

一、重寫(override)

override是重寫(覆蓋)乙個方法,以實現不同的功能。一般是用於子類在繼承父類時,重寫(重新實現)父類中的方法。

重寫(覆蓋)的規則:

1、重寫方法的引數列表必須完全與被重寫的方法的相同,否則不能稱其為重寫而是過載.

2、重寫方法的訪問修飾符一定要大於被重寫方法的訪問修飾符(public>protected>default>private)。

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

4、重寫的方法所丟擲的異常必須和被重寫方法的所丟擲的異常一致,或者是其子類;

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

6、靜態方法不能被重寫為非靜態的方法(會編譯出錯)。

二、過載overload

overload是過載,一般是用於在乙個類內實現若干過載的方法,這些方法的名稱相同而引數形式不同。

過載的規則:

1、在使用過載時只能通過相同的方法名、不同的引數形式實現。不同的引數型別可以是不同的引數型別,不同的引數個數,不同的引數順序(引數型別必須不一樣);

2、不能通過訪問許可權、返回型別、丟擲的異常進行過載;

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

多型的概念比較複雜,有多種意義的多型,乙個有趣但不嚴謹的說法是:繼承是子類使用父類的方法,而多型則是父類使用子類的方法。 一般,我們使用多型是為了避免在父類裡大量過載引起**臃腫且難於維護。

Overload(過載)Override 重寫

override 重寫 1 方法名 引數 返回值相同。2 子類方法不能縮小父類方法的訪問許可權。3 子類方法不能丟擲比父類方法更多的異常 但子類方法可以不丟擲異常 4 存在於父類和子類之間。5 方法被定義為final不能被重寫。overload 過載 1 引數型別 個數 順序至少有乙個不相同。2 不...

重寫Override 過載Overload的區別

一 重寫override 重寫是針對方法而言,發生在父類與子類之間。子類繼承父類後,子類要改變父類已經有的行為,就可以採用重寫的方式。和父類定義同名方法,引數個數 引數型別一致。這樣呼叫這個方法時,根據就近原則,預設就呼叫新覆蓋的方法,從而達到改寫目的。1 方法名相同,引數個數 引數型別相同 2 子...

Java重寫Override和過載Overload

本文出自 吳孝城的csdn部落格 package cn.wuxiaocheng class animal class dogextends animal public class test 結果如圖 override表明這個方法是重寫其父類方法,沒有它不會報錯,但是沒有它時,下面重寫的方法名寫錯時系...