与接口(可以描述为实现合同)不同,抽象类充当扩展的合同。
抽象类无法实例化,必须对其进行扩展,然后可以实例化生成的类(或派生类)。
抽象类用于提供通用实现
public abstract class Car
{
public void HonkHorn() {
// 鸣喇叭的实现
}
}
public class Mustang : Car
{
// 只需扩展抽象类Car,Mustang就可以HonkHorn()
// 如果Car是接口,则需要包括HonkHorn方法
// 在实现它的每个类中。
}上面的示例显示了实现Car的任何扩展类如何自动接收HonkHorn方法。这意味着任何开发新汽车的开发人员都无需担心它将如何鸣笛。