Java “是什么意思?”;“直接超级接口”;一个班级的学生?

Java “是什么意思?”;“直接超级接口”;一个班级的学生?,java,interface,Java,Interface,在JLS和JVM规范中,都有一种语言引用类的直接超级接口。类的直接超级接口的概念令人困惑,因为类不能扩展接口 例如,根据JLS第9节: 类必须实现其直接超类和直接超级接口所实现的所有接口 JVM规范第5.4.3.2节: 否则,字段查找将递归应用于指定类或接口C的直接超级接口 尽管在JLS第9.1.3节中,直接超级接口的定义如下 如果提供了extends子句,则声明的接口将扩展其他每个命名接口,从而继承其他每个命名接口的成员类型、方法和常量。这些其他命名接口是所声明接口的直接超级接口 严格地说 给

在JLS和JVM规范中,都有一种语言引用类的直接超级接口。类的直接超级接口的概念令人困惑,因为类不能扩展接口

例如,根据JLS第9节:

类必须实现其直接超类和直接超级接口所实现的所有接口

JVM规范第5.4.3.2节:

否则,字段查找将递归应用于指定类或接口C的直接超级接口

尽管在JLS第9.1.3节中,直接超级接口的定义如下

如果提供了extends子句,则声明的接口将扩展其他每个命名接口,从而继承其他每个命名接口的成员类型、方法和常量。这些其他命名接口是所声明接口的直接超级接口

严格地说

给定I(n)的(可能是通用的)接口声明≥ 0),接口类型I的直接超级接口是I声明的extends子句中给出的类型(如果存在extends子句)

在这两种定义中,直接超级接口的概念应用于接口类型,而不是类类型


那么什么是类的直接超级接口呢?

直接超级接口是类直接实现的所有接口

例如,如果

X类实现Y,Z

Y和Z是类X的直接超级接口

除了实现其直接超级接口外,类还间接实现其直接超级类实现的所有接口以及其直接超级接口扩展的所有接口

:

类声明中的可选implements子句列出了作为所声明类的直接超级接口的接口的名称


直接超级接口是类直接实现的所有接口

例如,如果

X类实现Y,Z

Y和Z是类X的直接超级接口

除了实现其直接超级接口外,类还间接实现其直接超级类实现的所有接口以及其直接超级接口扩展的所有接口

:

类声明中的可选implements子句列出了作为所声明类的直接超级接口的接口的名称


类B扩展A实现java.io.Serializable,Cloneable
:类B扩展A实现java.io.Serializable和
可克隆
都是
B
的直接上级接口,其他(非直接)可能来自
A
类B扩展A实现java.io.Serializable,可克隆的
:无论是
可序列化的
还是
可克隆的
都是
B
的直接上级界面,其他(非直接)可能来自
A
。谢谢你的澄清回答,你的定义在规范中给出了吗?@user111744是的,我在JLS中添加了一段引用。谢谢你的澄清回答,您的定义是否在规范中给出了?@user111744是的,我在JLS中添加了一个引用。