java - Java 中的接口(interface)和抽象类

标签 java interface abstract-class

Java 中的接口(interface)和抽象类是否扩展了 Object 基类?我能想到的逻辑答案是否定的,但是如果接口(interface)不扩展对象类,那么可以请有人解释一下下面的代码:

interface A { 

@Override 
public int hashCode(); 

@Override 
public String toString(); 

} 

在上面的例子中,A接口(interface)是声明的新接口(interface)。然而,没有一个类正在实现它。那么Object类的方法如何在界面中可见呢?

如果它不扩展 Object 类,那么为什么我不能在接口(interface)中声明以下方法:

public Class getClass();

当我试图在接口(interface)中声明这个方法时,它说它不能重写这个从Object类继承的方法,因为它在Object类中被声明为final方法。

最佳答案

接口(interface)只能扩展一些其他接口(interface),并且不能 - 没有一些根接口(interface)。与 Java 中的任何其他类一样,抽象类以 Object 作为其祖先 - 尽管它可能不是直接父级。

标记为final的方法无法在后续类中重写。由于您的类以 Object 作为其祖先 - 此规则也适用于此处。

关于java - Java 中的接口(interface)和抽象类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23245211/

相关文章:

java - Derby/JavaDB _真的_可以使用 Triple DES 而不是(普通的)DES 进行加密吗?

php - 从另一个方法获取 php 构造函数参数值和名称

java - 抽象类与所有方法抽象和接口(interface)之间的区别?

java - Here-API:PDE 请求返回 GeoboundingBox 之外的 POI

java - 如何使用 Bourne Shell 将输入从 Java 程序传输到另一个程序

java - Box2D 和 LibGDX : BodyEditorLoader error

java - 在java中实例化接口(interface)

c# - 为什么我不能在隐式转换时返回接口(interface),而 ExpandoObject 可以?

vb.net - 好奇的问题 - 接口(interface)变量(即昏暗的 x 作为 Iinterface = 对象?)并且如果对象是一种形式

java - 模拟抽象类的非抽象方法