在某基类中声明 virtual 并在一个或多个派生类中被重新定义的成员函数称为虚函数。
虚函数的作用就是实现多态性(Polymorphism),多态性是将接口与实现进行分离。
C#作为完全面向对象语言,所有函数并不默认为virtual,但可以在基类中声明关键字virtual,就可以在其派生类中通过关键字override重写该函数。重写后的virtual函数依旧是virtual函数。由于virtual只对类中的实例函数成员有意义,所以成员字段和静态函数都不能声明为virtual,也不能与override和abstract一起用。