擴充套件抽象基類

與介面(可以描述為實現合同)不同,抽象類充當擴充套件合同。

抽象類無法例項化,必須進行擴充套件,然後可以例項化生成的類(或派生類)。

抽象類用於提供通用實現

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 方法。這意味著任何開發新車的開發人員都不需要擔心它是如何鳴喇叭的。