接口和抽象类是用来定义多个实现的类型的两种机制。相比较而言接口更加灵活、实用。理由如下:
现有的类很容易更新,以实现新的接口。但是对抽象类则不行。
接口是定义混合类型的理想选择。
接口允许我们构造非层次结构的类型框架。非结构类型的组织。
抽象类演变比接口的演变要容易的多。后续版本可以在抽象类中添加方法,并且有默认的实现。而接口则不行。接口一旦被公开,并且被广泛实现,再想改变几乎是不可能的。所以设计接口的时候必须非常谨慎。