過載和重寫

2022-09-12 17:18:18 字數 828 閱讀 2735

1, 過載(overloading)

(1) 方法過載是讓類以統一的方式處理不同型別資料的一種手段。多個同名函式同時

存在,具有不同的引數個數/型別。過載overloading是乙個類中多型性的一種表現。

(2) c#的方法過載,就是在類中可以建立多個方法,它們具有相同的名字,但具

有不同的引數和不同的定義。呼叫方法時通過傳遞給它們的不同引數個數和引數型別

來決定具體使用哪個方法, 這就是多型性。

(3) 過載的時候,方法名要一樣,但是引數型別和個數不一樣,返回值型別可以相同

也可以不相同。無法以返回型別作為過載函式的區分標準。

2, 重寫(overriding)

(1) 父類與子類之間的多型性,對父類的函式進行重新定義。如果在子類中定義某

方法與其父類有相同的名稱和引數,我們說該方法被重寫 (overriding)。在c#中,父類

必須是(抽象)abstract類中的抽象方法或者父類的方法為虛方法(virtual);

子類可繼承父類中的方法,而不需要重新編寫相同的方法。但有時子類並不想原封不

動地繼承父類的方法,而是想作一定的修改,這就需要採用方法的重寫。方法重寫又

稱方法覆蓋。重寫通知必須加上override關鍵字。

(2) 若子類中的方法與父類中的某一方法具有相同的方法名、返回型別和參數列,

則新方法將覆蓋原有的方法。如需父類中原有的方法,可使用base關鍵字,該關鍵

字引用了當前類的父類。

(3) 子類函式的訪問修飾許可權不能少於父類的;即子類可以訪問重寫的父類方法;

關鍵字:new可以隱藏方法 sealed override 的父類不能被子類重寫

過載和重寫

物件導向的三大特性 繼承 封裝 多型。過載和重寫是多型的兩種表現形式。過載和重寫又有什麼區別呢?1 層次不同 重寫 發生在父類和子類之間。是子類重寫父類的方法,具有相同的方法名和方法引數。比如說,父子兩人都去吃飯 相同的方法 吃的是麵條 引數 父親飯量大,吃兩碗,兒子飯量小,就能吃一碗 實現了吃飯的...

過載和重寫

asp.net unity開發 net培訓 期待與您交流!過載 乙個類裡面有多個方法,方法名稱是相同的,返回值可以不同,引數列表的個數 型別 順序不同。區分過載方法可以通過引數列表的個數 型別 順序來決定呼叫哪個方法。過載可以子類過載父類的方法,並且可以靜態非靜態之間轉換。重寫 覆蓋 一般是指父類和...

重寫 和 過載

型構就是指方法的組成結構,具體包括方法的名稱和引數,涵蓋引數的數量 型別以及出現的順序,但是不包括方法的返回值型別,訪問許可權修飾符,以及abstract static final等修飾符。1.public void method int i,string s 4.5.public string m...