2014-09-21 60 views
1

HashSet implements接口Set扩展接口Collection扩展接口迭代 那么我们可以说HashSet被称为实现接口Iterable吗? 这对于JVM运行时和类加载而言看起来如何?在那里只创建了一个名为HashSet的大类(它包含所有的Iterable方法)?是一个被认为是实现的超类的接口吗?

+0

接口不是一个类,所以将它称为超类是错误的。超类型是一个更准确的术语,因为接口定义了类型,但不是类。 – Bobulous 2014-09-21 19:25:58

+0

请参阅有关[虚拟调用](https://wiki.openjdk.java.net/display/HotSpot/VirtualCalls)和[接口调用](https://wiki.openjdk)的HotSpot(OpenJDK JIT)实现的文档。 java.net/display/HotSpot/InterfaceCalls)。 – 2014-09-21 19:37:19

回答

2

如果A类实现了接口X并且接口X扩展了接口Y,那么A也实现了接口Y.这就是扩展接口的工作原理。 它仍然只是一个类,即使它实现了不同接口的加载。

接口只是一个规范:它声明某个类提供了一组特定的方法。当一个接口扩展另一个接口时,它将包含所有这些方法以及它添加的其他方法。因此,实现该接口的任何类都必须提供所有接口及其超级接口指定的所有方法。

所以是的,HashSet实现了Iterable接口。 http://docs.oracle.com/javase/7/docs/api/java/util/HashSet.html

相关问题