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"); } }