新建和覆盖之间的差异

新建和覆盖之间的差异

想知道以下几点之间有什么区别:

案例1:基类

public void DoIt();

案例1:继承类

public new void DoIt();

案例2:基类

public virtual void DoIt();

案例2:继承类

public override void DoIt();

根据我所运行的测试,情况1和2似乎都有相同的效果。有什么不同,还是首选的方法?


慕沐林林
浏览 387回答 3
3回答

MM们

在第一种情况下,您将定义隐藏在父类中。这意味着只有在将对象作为子类处理时才会调用它。如果将类强制转换为父类型,则将调用父类的方法。在第二个实例中,不管对象是作为子类还是父类进行强制转换,方法都会被重写并被调用。
打开App,查看更多内容
随时随地看视频慕课网APP