effetive java提出了三个使用接口的原因:
1、现有的类可以很容易被更新,以实现新的接口。
2、接口是定义mixin(混合类型)的理想选择。
3、接口允许我们构造非层次结构的类型框架。
注意:类可以实现多个接口,而且接口和接口之间也是可以继承的
如果使用抽象类来定义类型,那么程勋元除了使用继承的手段来增加功能,没有其他的选择,通过对你导出的每个重要接口都提供一个抽象的骨架实现类,把接口和抽象类的优点结合起来,接口的作用仍然是定义类型,但是骨架实现类接管了所有与接口实现相关的工作。