C 關鍵字之override詳解

2021-08-31 16:34:55 字數 1298 閱讀 6036

過載、重寫、覆寫,分別指的是overload、override、new。

一、override重寫,是在子類中重寫父類中的方法,兩個函式的函式特徵(函式名、引數型別與個數)相同。用於擴充套件或修改繼承的方法、屬性、索引器或事件的抽象或虛擬實現。提供從基類繼承的成員的新實現,而通過override宣告重寫的方法稱為基方法。 

注意事項:

1.重寫基方法必須具有與override方法相同的簽名。 

2.override宣告不能更改virtual方法的可訪問性,且override方法與virtual方法必須具有相同級別訪問修飾符。 

3.不能用new、static、virtual修飾符修改override方法。 

4.重寫屬性宣告必須指定與繼承的屬性完全相同的訪問修飾符、型別和名稱。 

5.重寫的屬性必須是virtual、abstract或override。 

6.不能重寫非虛方法或靜態方法。 

7.父類中有abstract,那麼子類同名方法必定有override,若父類中有 virtual方法,子類同名方法不一定是override,可能是overload。 

8.override必定有父子類關係。

二、overload過載,在同乙個類中方法名相同、引數或返回值不同的多個方法即為方法過載。

注意事項:

1.出現在同乙個類中。 

2.引數列表不同或返回型別和引數列表都不同,只有返回型別不同不能過載。(引數列表包括引數個數和引數型別)

三、overwrite覆寫,用new實現。在子類中用 new 關鍵字修飾定義的與父類中同名的方法,也稱為覆蓋,覆蓋不會改變父類方法的功能。

------------------

class parent

public virtual void g() //抽象方法

public int add(int x, int y)

public float add(float x, float y) //過載(overload)add函式

}class childone:parent //子類一繼承父類

public override void g() //覆寫(override)父類虛函式,主要實現多型

}class childtwo:parent //子類二繼承父類

public override void g()

}class program

}---------------------

原文:

C 關鍵字override詳解

過載 重寫 覆寫,分別指的是overload override new。一 override重寫,是在子類中重寫父類中的方法,兩個函式的函式特徵 函式名 引數型別與個數 相同。用於擴充套件或修改繼承的方法 屬性 索引器或事件的抽象或虛擬實現。提供從基類繼承的成員的新實現,而通過override宣告重...

c 的override關鍵字

我那個編譯器裡把override標藍 表示那是系統關鍵字 它有什麼用?我知道 英語單詞 override表示子類覆蓋掉父類的方法,呼叫時會呼叫子類的方法 父類對應的方法已經用virtual修飾。我問的是override作為c 關鍵字 的用處。描述 override保留字表示當前函式重寫了基類的虛函式...

final和override關鍵字

目前用的比較多的是override,主要是在派生類中重寫基類虛函式時。有助於加強 可讀性和減少一些拼寫錯誤。struct a struct b final a struct c b err b是final override關鍵字保證了派生類中宣告重寫的函式與基類虛函式有相同的簽名,可避免一些拼寫錯誤...