c#繼承:理解new
>override
> new
override
在C#繼承中,關鍵字
提供不同的方法來管理派生類中的方法行為。 這種解釋闡明了它們的差異和適當的用法。
new
new
>
修飾符允許派生類引入與基類中方法相同名稱的方法。 至關重要的是,此
> >示例:
<code class="language-csharp">public class BaseClass { public void MyMethod() { Console.WriteLine("BaseClass Method"); } } public class DerivedClass : BaseClass { public new void MyMethod() { Console.WriteLine("DerivedClass Method"); } }</code>
DerivedClass.MyMethod()
>這裡,MyMethod()
是一種獨特的方法。 在ADerivedClass
>實例上調用BaseClass
>執行派生類的版本;在A
>
override
>修飾符:替換虛擬方法
override
>修飾符用於從基類替換虛擬方法的實現。 基類方法必須將其聲明為(或virtual
)。 abstract
確保在派生類的實例中調用該方法時稱為派生類的版本。
override
在這種情況下,
<code class="language-csharp">public class BaseClass { public virtual void MyMethod() { Console.WriteLine("BaseClass Method"); } } public class DerivedClass : BaseClass { public override void MyMethod() { Console.WriteLine("DerivedClass Method"); } }</code>覆蓋
。 在ADerivedClass.MyMethod()
>實例BaseClass.MyMethod()
上呼叫MyMethod()
始終DerivedClass
執行版本。
DerivedClass
何時使用每個修飾符: >使用 >使用
功能
方法創建
創建一個全新的方法
替換現有的虛擬方法
繼承
打破了方法的繼承鏈
維護繼承鏈
基類方法
基類方法不受影響
基類方法必須是虛擬/摘要
new
>當您想要在派生類中完全獨立的方法時,即使它與基類中的方法共享名稱。 這對於避免意想不到的壓倒和維持不同的功能很有用。 override
>在派生類中提供了專門的實現,同時仍在維護該特定方法的繼承關係。
以上是C#繼承中的'新”和'覆蓋”有什麼區別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!