new 与override 区别
BaseC baseC=new BaseC ();
baseC.Invoke();
BaseC derivedC =new DerivedC ();
derivedC.Invoke();
SuperA superA = new SuperA(); //new 必须申明也是本类
superA.Invoke();
BaseC superA1 = new SuperA(); //申明是父类
superA1.Invoke();
输出如下:
BaseC
DerivedC
SuperA
BaseC //申明是父类
new 隐藏父类,而申明必须也是子类才可以。
public class BaseC
{
public int x;
public virtual void Invoke() {
Debug.WriteLine("BaseC");
}
}
public class DerivedC : BaseC
{
public override void Invoke() {
Debug.WriteLine("DerivedC");
}
}
public class SuperA : BaseC
{
public new void Invoke()
{
Debug.WriteLine("SuperA");
}
}
本文来自博客园,作者:willamyao,转载请注明原文链接:https://www.cnblogs.com/robertyao/p/16199695.html
代码改变世界

浙公网安备 33010602011771号