虚方法
关键字:virtual
virtual 关键字用于修饰方法、属性、索引器或事件声明,并使它们可以在派生类中被重写。例如,此方法可被任何继承它的类重写
调用虚方法时,将为重写成员检查该对象的运行时类型。将调用大部分派生类中的该重写成员,如果没有派生类重写该成员,则它可能是原始成员。
默认情况下,方法是非虚拟的。不能重写非虚方法。
virtual 修饰符不能与 static、abstract, private 或 override 修饰符一起使用。
除了声明和调用语法不同外,虚拟属性的行为与抽象方法一样。
-
在静态属性上使用 virtual 修饰符是错误的。
-
通过包括使用 override 修饰符的属性声明,可在派生类中重写虚拟继承属性。
示例:
public virtual float getArea()
{
return heigth * width;
}
{
return heigth * width;
}
抽象类和抽象函数
关键字:abstract
abstract 修饰符用于类中不具有实现的方法或属性或者用于包含这些方法的类。具有抽象成员的类不能使用 new 运算符来实例化。您可以从抽象基类派生抽象和非抽象的类。
类中的方法和属性以及类可以使用 abstract 修饰符来标记。如果一个类包含任何 abstract 成员,则必须标记为 abstract。接口和接口的成员为隐式抽象,它们不能采用 abstract 修饰符。字段不能为 abstract。
不能将 abstract 修饰符与其他继承修饰符 (final) 组合。默认情况下,类成员既不是 abstract 也不是 final。继承修饰符不能与 static 修饰符组合。
示例:
public abstract void draw(Graphics g);