来自MSDN的新关键字参考:
MSDN参考
这是我在网上从Microsoft MVP中找到的一个很好的例子:
链接到原始
public class A{ public virtual void One(); public void Two();}public class B : A{ public override void One(); public new void Two();}B b = new B();A a = b as A;a.One(); // Calls implementation in Ba.Two(); // Calls implementation in Ab.One(); // Calls implementation in Bb.Two(); // Calls implementation in B替代只能在非常特殊的情况下使用。从MSDN:
您不能覆盖非虚拟或静态方法。覆盖的基本方法必须是虚拟的,抽象的或覆盖的。
因此,需要使用“ new”关键字来允许您“覆盖”非虚拟和静态方法。



