对象 class 允许 Java 中的多重继承?
Multiple Inheritance in Java allowed with Object class?
在Java中,他们说不支持多重继承。这也是一个事实,Java 中的每个 class 都扩展了 class 对象。所以如果我写:
public class ThreadInstance extends Thread {
}
这是如何编译的?这里的 ThreadInstance 实际上是对 Thread 和 Object 的扩展。这里不是多重继承吗
您的 class 扩展了 Thread
但 Thread
已经扩展了 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。
在Java中,他们说不支持多重继承。这也是一个事实,Java 中的每个 class 都扩展了 class 对象。所以如果我写:
public class ThreadInstance extends Thread {
}
这是如何编译的?这里的 ThreadInstance 实际上是对 Thread 和 Object 的扩展。这里不是多重继承吗
您的 class 扩展了 Thread
但 Thread
已经扩展了 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。