【问题标题】:Multiple Inheritance in Java allowed with Object class? [duplicate]对象类允许Java中的多重继承? [复制]
【发布时间】:2015-04-04 10:11:36
【问题描述】:
在 Java 中,他们说不支持多重继承。这也是一个事实,Java 中的每个类都扩展了 Object 类。所以如果我写:
public class ThreadInstance extends Thread {
}
这是如何编译的?这里的 ThreadInstance 实际上是对 Thread 和 Object 的扩展。这里不是多重继承吗?
【问题讨论】:
标签:
java
object
multiple-inheritance
【解决方案1】:
通过多重继承,您应该理解同时继承多个类,例如不可能创建一个
public class ThreadInstance extends Thread, Object {
}
因为类层次结构看起来像这样:
ThreadInstance
^ ^
Thread Object
当您像以前一样定义 ThreadInstance 时,ThreadInstance 也会继承 Object,但它首先继承线程。
ThreadInstance
^
Thread
^
Object
那里没有多重继承。
【解决方案2】:
您的类扩展了Thread,但Thread 已经扩展了Object,所以它仍然是单继承,因为它遵循相同的继承线
Object 被每个类隐式继承。在您的 ThreadInstance 类中,Thread 是显式继承的。
因此,除了Object 之外的每个Java 类都必须有一个超类。隐式继承没有什么特别之处,它只是为了减少样板代码。
【解决方案3】:
您的类扩展了另一个类,但它也扩展了 Object,因此您仍然处于一行继承中,而不是两行。
例如。
ThreadInstance 扩展了 Thread,但是 Thread 又扩展了 Object,所以我不能说 ThreadInstance 扩展了 Object。