请解释一下:
- 第三点
- 第 5 行(粗体)
- 倒数第二行
最佳答案
Every class in Java is implicitly (or explicitly) a sub type of java.lang.Object
.
The class Object is a superclass (§8.1.4) of all other classes.
因此,您可以调用 Object
中声明的任何方法任何类类型的任何变量。
String var = ...;
var.hashCode();
这对于 interface
来说必须是正确的。也可以输入变量
SomeInterface var = ...;
var.hashCode();
因此,interface
必须隐式声明(如 abstract
)那些在 java.lang.Object
中声明的方法.
您无法覆盖 final
方法,但接口(interface)声明的方法必须在子类型中实现,因此如果接口(interface)声明的方法声明为final
,则会抛出编译时错误在java.lang.Object
.
接口(interface)可以在其主体中声明类、接口(interface)和字段。如果子接口(interface)声明了任何具有相同名称的接口(interface),那么它就会隐藏它们。因此它不会继承它们。
例如,
public static void main(String[] args) throws Exception {
System.out.println(Parent.answer);
System.out.println(Child.answer);
}
interface Parent {
int answer = 42;
}
interface Child extends Parent {
int answer = 0;
}
打印
42
0
没有办法获取Parent
的值来自 Child
引用。
关于java - 接口(interface) : Java Language Specification,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21486131/