抽象类
包含一个或多个抽象方法,该类必须被限定为抽象类。
如果从一个抽象类继承,并想创建该类的对象,那么就必须为基类中的所有抽象方法提供方法定义。如果不这么做,那么导出类也是抽象类,且编译器会强制我们使用abstract关键字来限定这个类。
抽象类还是有用的重构工具,因为它们使我们可以容易的将一个公共方法从继承层次向上移动。
接口
interface关键字使抽象的概念更近一步,abstract关键字使人在类中创建一个或多个没有任何定义的方法--提供接口部分,但是没有提供任何具体的实现。interface这个关键字产生一个完全抽象的类。
一个接口表示所有实现了该特定接口的类看起来都像这样。
接口被用来建立类与类之间的协议。
interface不仅仅是一个极度抽象的类,它允许人们通过创建一个向上转型为多种基类的类型,来实现某种类似多重继承变种的特性。
策略设计模式
适配器模式
接口和工厂