您指的是有效Java的第18项-首选抽象类的接口,尤其是以下部分:
接口是定义mixin的理想选择。 松散地说, mixin
是一种类,除了其“主要类型”以外,还可以实现它来声明它提供了一些可选的行为。例如Comparable,mixin接口允许类声明其实例相对于其他相互可比较的对象而排序。这样的接口称为mixin,因为它允许将可选功能“混合”到类型的主要功能中。不能使用抽象类来定义mixin,原因是无法将它们改版为现有类:一个类不能有多个父类,并且在类层次结构中没有合理的位置可插入mixin。
本质上,在抽象类和接口中指定功能之间的主要区别之一是,接口版本可以在许多不同的类层次结构中使用,而抽象类只能在一个类层次结构树中使用,因为Java仅允许单继承。


![Java中的mixin示例?[重复] Java中的mixin示例?[重复]](http://www.mshxw.com/aiimages/31/414459.png)
