-
基类方法必须定义为 virtual。
-
如果派生类中的方法前面没有 new 或 override 关键字,则编译器将发出警告,该方法将如同存在
new
关键字一样执行操作。 -
如果派生类中的方法前面带有
new
关键字,则该方法被定义为独立于基类中的方法。 -
如果派生类中的方法前面带有
override
关键字,则派生类的对象将调用该方法,而不是调用基类方法。 -
可以从派生类中使用
base
关键字调用基类方法。 -
override
、virtual
和new
关键字还可以用于属性、索引器和事件中。namespace 虚方法 { public class class1 { public virtual void Say() { Console.WriteLine("Hello World!"); } } public class class2 : class1 { public override void Say() { base.Say(); Console.WriteLine("你好,世界!"); } } class Program { static void Main(string[] args) { class2 c2 = new 虚方法.class2(); c2.Say(); } } }