2014-09-21 62 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

相關問題