c 過載和重寫及運用

2022-01-29 23:16:27 字數 995 閱讀 6849

過載的條件:

1.必須在同乙個類中2.方法名必須相同3.引數列表不能相同。

重寫的條件:

1. 在不同的類中

2. 發生方法重寫的兩個方法返回值,方法名,引數列表必須完全一致

3. 子類丟擲的異常不能超過父類相應的方法丟擲的異常

4. 子類方法的訪問級別不能低於父類相應方法的訪問級別(public,package,protected, private)

5.方法體不同

super()呼叫父類構造,super.只能呼叫父類的例項方法

this()呼叫該類的其他構造方法,this.呼叫類的屬性,方法

如果父類有有參構造,子類必須定義構造方法

過載:過載發生在同乙個類中;過載主要是針對同乙個類中方法名相同但引數(必須的)不同或返回型別(不是必須的)不同的情況。可以參照如下的**

class overloadtest

public void hello(string str)

public string hello()

}在這段**中有三個具有相同名稱的方法hello,他們彼此之間是過載的關係,注意兩點:他們共同存在於乙個類中,雖有同樣的名字但是執行不同的操作;第乙個方法和第三個方法只有返回型別不同,這在c# 中是不允許的,編譯器會報出「已定義乙個名為"hello"的方法」的錯誤。

重寫:重寫發生在有繼承關係的類之間 

重寫發生在派生類上,通過override關鍵字來改寫從其父類繼承過來的具有相同返回值,方法名稱和引數列表的方法。

class program

}class overwritetest

//define a virtual method hello() to be over written

public virtual void hello()

}class overwritetesttt : overwritetest

}class overwritetestttt : overwritetesttt

}

c 過載和重寫及運用

過載的條件 1.必須在同乙個類中2.方法名必須相同3.引數列表不能相同。重寫的條件 1.在不同的類中 2.發生方法重寫的兩個方法返回值,方法名,引數列表必須完全一致 3.子類丟擲的異常不能超過父類相應的方法丟擲的異常 4.子類方法的訪問級別不能低於父類相應方法的訪問級別 public,package...

C 重寫和過載

已遷移至本人部落格 首先分別建立三個類,分別為person,man,women 其中person為父類,man繼承person,women繼承man virtual用法 1.在父類中定義virtual方法,但在子類中沒有override該方法,則子類呼叫父類該方法時輸出父類方法的值。2.在父類中定義...

C 重寫和過載

要求 三大同 引數相同,方法名相同,返回值相同 意義 增強類的重用性,擴充套件性,重寫是對類中方法的擴充,重寫繼承用的是父類的東西,則不僅得到父類的特徵,同時也加入了自己的東西 關鍵字 基類函式用virtual修飾,派生類用override修飾 注意 不能重寫非虛方法或靜態方法 testdemo 主...