c#中基类(父类)中的某方法若想在派生类(子类)中被重写(override),必须将基类中的方法定义为virtual,即虚函数。 若派生类将方法修饰为new,即有意隐藏基类中的方法。
下面看一组代码:
输出:Father.hand
警告:“Son.hand()”将隐藏继承的成员“Father.hand()”。若要使当前成员重写该实现,请添加关键字 override。否则,添加关键字 new。
编译错误:“Son.hand()”: 继承成员“Father.hand()”未被标记为 virtual、abstract 或 override,无法进行重写。
输出:Son.hand
无警告。
输出:Father.hand
无警告。