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中文网其他相关文章!