虚方法
虚拟方法是指在即类中声明为virtual,又在一个或多个派生类中重新定义的方法。当派生类重新定义虚拟方法是,就要使用override关键字。虚拟方法不能被定义为static或abstract。方法重载形成了C#的一个重要概念:动态方法分配(dynamic mothod dispatch)。动态方法分配是一种在程序运行时,而不是在编译时调用重载函数的机制。动态方法分配概念非常重要,因为运行期多态是靠它实现的。
覆写(override)方法不是必须的,如果派生类没有提供覆写(override)虚拟方法,那么基类的方法就会被应用。
抽象方法
必须被派生类覆写的方法。可以看成是没有实现体的虚方法。如果类中包含抽象方法,那么累就必须定义为抽象类,不论是否还包含其它一般方法。abstract关键字只能用于通常的方法,不能用于静态的方法。一起使用virtual和abstract是错误的。