前序
一直以来,我们学习java就被灌输了一个观点:
类和抽象类(class)只能被继承(extends),接口(interface)只能被实现(implements)。
有个概念我们一直没有弄懂的是:类(class)可以实现接口(interface),但是接口(interface)跟接口(interface)之间呢?
类可以继承类和实现接口,如下:
public class ArrayList extends AbstractListimplements List, RandomAccess, Cloneable, java.io.Serializable
{....
}
举例
接口(interface)与接口(interface)之间的关系:也是继承(extends),看如下代码:
1、jdk源码中Deque队列接口的实现定义
public interface Deque extends Queue {....}
2、再看Queue队列接口的实现定义
public interface Queue extends Collection {....
}
结合1和2两个步骤来看,发现有点不对??接口(interface)怎么可以继承(extends)接口(interface)呢?
跟印象中学习的java有冲突不一样啊?!
揭晓
通过以上实例证明,接口与接口之间的关系是:继承(extends),所谓接口扩展的原因吧。
自行查看jdk源码即可发现。