【问题标题】:is a interface that is implemented considered a superclass of the implementation?被实现的接口是否被认为是实现的超类?
【发布时间】:2014-09-21 19:19:38
【问题描述】:

HashSet 实现接口 Set 扩展接口 Collection 扩展接口 iterable 那么我们可以说HashSet实现了Iterable接口吗? 就 JVM 运行时和类加载而言,这是什么样的?那里只创建了一个名为 HashSet 的大类(包括所有 Iterable 方法)?

【问题讨论】:

  • 接口不是类,所以称它为超类是错误的。超类型是一个更准确的术语,因为接口定义了一个类型,而不是一个类。
  • 查看有关 virtual callsinterface calls 的 HotSpot(OpenJDK JIT)实现的文档。

标签: java


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-18
    • 2013-06-08
    • 2010-09-21
    • 2015-01-15
    • 1970-01-01
    • 2020-11-07
    相关资源
    最近更新 更多