C#扩展抽象基类

示例

与接口(可以描述为实现合同)不同,抽象类充当扩展的合同。

抽象类无法实例化,必须对其进行扩展,然后可以实例化生成的类(或派生类)。

抽象类用于提供通用实现

public abstract class Car
{
    public void HonkHorn() {
        // 鸣喇叭的实现
    }
}

public class Mustang : Car
{
    // 只需扩展抽象类Car,Mustang就可以HonkHorn()
    // 如果Car是接口,则需要包括HonkHorn方法
    // 在实现它的每个类中。
}

上面的示例显示了实现Car的任何扩展类如何自动接收HonkHorn方法。这意味着任何开发新汽车的开发人员都无需担心它将如何鸣笛。