重寫與過載

2021-06-16 07:02:04 字數 871 閱讀 5782

override

為覆蓋又叫重寫,從字面就可以知道,它是覆蓋了乙個方法並且對其重寫,以求達到不同的作用。對我們來說最熟悉的覆蓋就是對介面方法的實現,在介面中一般只是對方法進行了宣告,而我們在實現時,就需要實現介面宣告的所有方法。除了這個典型的用法以外,我們在繼承中也可能會在子類覆蓋父類中的方法。在覆蓋要注意以下的幾點:

1、重寫方法的引數列表必須完全與被重寫的方法的相同

,否則不能稱其為重寫而是過載.2

、重寫方法的訪問修飾符一定要大於被重寫方法的訪問修飾符(

public>protected>default>private)。3

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

(怎麼才算一致)

1)在測試中,其中子類的返回值是父類對應方法的返回值的子類也是可以的

2)對於原子型別是不存在繼承的關係,所以只能是型別一樣。

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

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

、靜態方法不存在重寫,只有過載。

overload

對我們來說可能比較熟悉,可以翻譯為過載,它是指我們可以定義一些名稱相同的方法,通過定義不同的輸入引數來區分這些方法,然後再呼叫時,

vm就會根據不同的引數樣式,來選擇合適的方法執行。在使用過載要注意以下的幾點:

1、在使用過載時只能通過不同的引數樣式。例如,不同的引數型別,不同的引數個數,不同的引數順序(當然,同一方法內的幾個引數型別必須不一樣,例如可以是

fun(int, float);2

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

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

ps:運算子過載建議:

過載與重寫

過載與重寫 面對過載與重寫有時會像失憶一樣,將這兩個內容搞混。在實際運用中,我們一般是不會混的。但在給別人講述的過程中,可能會出現張冠李戴將兩個名詞搞混,這是不利於傳播的。讓我們來一起加深一下 過載 相同函式名稱,不同引數或不同引數型別。舉個例子 class oneclass public doub...

重寫與過載

重寫方法的規則 1.引數列表必須完全與被重寫的方法的相同,否則不能稱其為重寫而是過載.2.返回的型別必須一直與被重寫的方法的返回型別相同,否則不能稱其為重寫而是過載.3.訪問修飾符的限制一定要大於被重寫方法的訪問修飾符 public protected default private 4.重寫方法一...

重寫與過載

重寫方法的規則 1 引數列表必須完全與被重寫的方法相同,否則不能稱其為重寫。2 返回的型別必須一直與被重寫的方法的返回型別相同,否則不能稱其為重寫。3 訪問修飾符的限制一定要大於被重寫方法的訪問修飾符 public protected default private 4 重寫方法一定不能拋出新的檢查...