在JLS和JVM规范中都有引用类的直接超级接口的语言。类的直接超级接口的概念令人困惑,因为类不能扩展接口。
例如,来自JLS第9节:
一个类必须实现它的直接超类和直接超级接口所做的所有接口。
来自JVM规范第5.4.3.2节:
否则,字段查找将递归应用于指定类或接口C的直接超级接口。
尽管在JLS第9.1.3节中给出了直接超级接口的定义
如果提供了extends子句,则所声明的接口将扩展每个其他命名接口,从而继承其他每个命名接口的成员类型、方法和常量。这些其他命名接口是正在声明的接口的直接超级接口。
并严正声明为
给定I (n 0)的(可能是泛型)接口声明,接口类型I的直接超级接口是在I声明的extends子句中给出的类型(如果存在≥子句)。
在这两个定义中,直接超级接口的概念都应用于接口类型,而不是类类型。
那么,类的直接超级接口意味着什么呢?
发布于 2014-12-06 13:38:18
直接超级接口是类直接实现的所有接口.
例如,如果
class X implements Y,Z
Y&Z是X类的直接超级接口。
除了实现它的直接超级接口之外,一个类还间接地实现其直接超类实现的所有接口以及它的直接超级接口扩展的所有接口。
类声明中的可选实现子句列出了被声明类的直接超级接口的接口名称。
https://stackoverflow.com/questions/27332255
复制相似问题