C#中的virtual与override学习笔记(摘自MSDN)
virtual(C# 参考) virtual 关键字用于修饰方法、属性、索引器或事件声明,并且允许在派生类中重写这些对象。例如,此方法可被任何继承它的类重写。 复制代码 public virtual double Area() { return x * y; } 虚拟成员的实现可由派生类中的 重写成员 更改。有关使用 virtual 关键字的更多信息,请参见 使用 Override 和 New 关键字进行版本控制(C# 编程指南) 和 了解何时使用 Override 和 New 关键字(C# 编程指南) 。 备注 调用虚方法时,将为重写成员检查该对象的运行时类型。将调用大部分派生类中的该重写成员,如果没有派生类重写该成员,则它可能是原始成员。 默认情况下,方法是非虚拟的。不能重写非虚方法。 virtual 修饰符不能与 static 、 abstract, private 或 override 修饰符一起使用。 除了声明和调用语法不同外,虚拟属性的行为与抽象方法一样。 在静态属性上使用 virtual 修饰符是错误的。 通过包括使用 override 修饰符的属性声明,可在派生类中重写虚拟继承属性。 示例 在该示例中, Dimensions 类包含 x 和 y 两个坐标和 Area() 虚方法。不同的形状类,如 Circle 、 Cylinder 和 Sphere 继承