对象 class 允许 Java 中的多重继承?

Multiple Inheritance in Java allowed with Object class?

在Java中,他们说不支持多重继承。这也是一个事实,Java 中的每个 class 都扩展了 class 对象。所以如果我写:

public class ThreadInstance extends Thread {
}

这是如何编译的?这里的 ThreadInstance 实际上是对 Thread 和 Object 的扩展。这里不是多重继承吗

您的 class 扩展了 ThreadThread 已经扩展了 Object 所以它仍然是单继承,因为它遵循相同的继承关系

Object 隐式 被每个 class 继承。在您的 ThreadInstance class 中,Thread 明确地 继承的。

因此每个 Java class 除了 Object 必须有一个超级 class。隐式继承没有什么特别之处,它只是为了减少样板代码。

通过多重继承,你应该明白同时继承多个class,例如不可能创建

public class ThreadInstance extends Thread, Object {
}

因为 class 层次结构如下所示:

ThreadInstance
^            ^
Thread       Object

当您像您一样定义 ThreadInstance 时,ThreadInstance 也会继承 Object,但它 首先 会继承线程。

ThreadInstance
      ^
    Thread
      ^
    Object

那里没有多重继承。

你的 class 扩展了另一个 class,但它也扩展了 Object,所以你仍然处于一个继承线中,而不是两个。

例如。 ThreadInstance 扩展了 Thread,但 Thread 又扩展了 Object,所以我不能说 ThreadInstance 扩展了 Object。