理解方法簽名中「new」關鍵字的意義
在C# 程式設計中,方法簽名中的「new」關鍵字的作用特定目的。它與“override”關鍵字不同,並提供了獨特的功能。
「new」在方法簽章中表示什麼?
方法簽章中的「new」關鍵字方法簽章用來指示方法隱藏了同名的繼承方法。這允許在衍生類別中對方法進行不同的實現,而無需修改基類的行為。
考慮以下範例:
public class BaseClass { public virtual void MyMethod() { // Base class implementation } } public class DerivedClass : BaseClass { public new void MyMethod() { // Derived class implementation } }
在此範例中,「new」 DerivedClass 的 MyMethod 方法中的關鍵字指定它是一個新的實現,而不是繼承自的 MyMethod方法的重寫BaseClass.
與「override」的區別
另一方面,「override」關鍵字用於明確重寫基類中聲明的虛擬方法。僅當衍生類別中的方法與基底類別中的虛擬方法具有相同的名稱、參數和傳回類型時才能使用它。
「new」關鍵字提供了更大的靈活性,因為它允許您修改衍生類別中的非虛擬方法和靜態方法。這在您需要更改繼承方法的行為而不影響基底類別實作的情況下非常有用。
例如,如果不使用「new」關鍵字,以下範例將導致編譯錯誤used:
public class BaseClass { public static void MyStaticMethod() { // Base class static method } } public class DerivedClass : BaseClass { public new static void MyStaticMethod() { // Derived class static method } }
總之,方法簽章中的「new」關鍵字用於隱藏具有相同名稱的繼承方法,從而允許在衍生類別中進行不同的實作。相較之下,「override」關鍵字用於明確重寫基底類別中的虛擬方法。
以上是C# 方法簽章中的「new」關鍵字其實有什麼作用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!