扩展抽象基类
与接口(可以描述为实现合同)不同,抽象类充当扩展合同。
抽象类无法实例化,必须进行扩展,然后可以实例化生成的类(或派生类)。
抽象类用于提供通用实现
public abstract class Car
{
public void HonkHorn() {
// Implementation of horn being honked
}
}
public class Mustang : Car
{
// Simply by extending the abstract class Car, the Mustang can HonkHorn()
// If Car were an interface, the HonkHorn method would need to be included
// in every class that implemented it.
}
上面的示例显示了任何扩展 Car 的类将如何自动接收带有实现的 HonkHorn 方法。这意味着任何开发新车的开发人员都不需要担心它是如何鸣喇叭的。