【问题标题】: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。

        【讨论】:

          猜你喜欢
          • 2020-04-14
          • 1970-01-01
          • 2015-01-23
          • 1970-01-01
          • 2020-03-06
          • 1970-01-01
          • 2018-04-04
          • 2012-06-06
          相关资源
          最近更新 更多