【问题标题】:Multiple supports inheritance in Java [duplicate]Java中的多个支持继承[重复]
【发布时间】:2013-11-05 06:52:14
【问题描述】:

Java 不支持多继承。 但是在eclipse中我们可以看到任何类默认扩展了OBJECT类,如果我们尝试添加未实现的方法,我们可以看到Object类的所有方法。

现在我的观点是我可以让我的类扩展任何类,例如 Thread。 所以现在我的类通过用户定义的一面和默认的对象扩展线程...... 这意味着多类继承?

【问题讨论】:

  • 不。 YourClass <- Thread <- Object。单继承(这只是意味着一个类只能有一个直接超类)。
  • Object 类始终位于继承层次结构的顶部,在这种情况下创建了一个类链 - 多级继承。
  • 1.您不能在 Java 中扩展“最终”类。 2. 我建议检查 C++ 等语言中多重继承的定义。
  • 这个问题有很多版本1, 2, 3, 4...
  • 所以每个人都在说,,,如果我不使用扩展,我的类将直接继承 Object 类,否则如果我引用 Thread 类,它将离开,并通过 Threads 维护先前的定义到 Object.. .ryt!

标签: java multiple-inheritance


【解决方案1】:

在 Java 接口中可以看到类似于多重继承的行为:

// implements BOTH Runnable AND ActionListener

public class MultipleInterfaces implements Runnable, ActionListener {
    @Override public void run() {}
    @Override public void actionPerformed(ActionEvent e) {}
}

多重继承是这样的:

// Not allowed, complete nuts

public class Amalgam extends ArrayList<Thread>, JPanel, Font {
    public Amalgam() {
        super(); // <- and what would this do?
    }
}

【讨论】:

  • 是的,谢谢你的信息。既然你提到了Runnable。 Leme问为什么Thread类实现了Runnable。线程不应该有自己的 run 定义吗?对不起,如果 Q 很蹩脚:)
  • 这实际上是一个合理的问题。按照它应该的方式,Thread 本身就是一个可运行的,它运行一个你提交给构造函数的可运行的。 new Thread(new Runnable() @Override public void run() {}).start(); 请参阅“定义和启动线程”docs.oracle.com/javase/tutorial/essential/concurrency/… 您可以从另一种方式看待它,线程是具有一些额外功能的可运行文件。您可以扩展 Thread 并覆盖 run。但从技术上讲,第一种方式“更好”。
【解决方案2】:

一个类只能有一个超类,即在java中一个类只能扩展一个类。如果未指定,则隐式扩展到Object

所以假设类是MyClass,它扩展了MySuperClass。由于MyClass 扩展了MySuperClass,所以它不会直接扩展Object。但是MySuperClass 类本身并没有显式扩展任何类,因此它扩展了Object,而MyClass 也扩展了层次结构中的Object

所以它不是多重继承,而是多重继承。希望对您有所帮助。

【讨论】:

    【解决方案3】:

    你提到的行为是java默认支持的多级继承

    【讨论】:

      【解决方案4】:

      这是MultiLevel继承,不是Multiple继承。

      【讨论】:

        【解决方案5】:

        any 类默认扩展 OBJECT 类

        这意味着 Thead 类也扩展了 Object。

        【讨论】:

          猜你喜欢
          • 2015-11-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-04-15
          • 2016-08-24
          • 2016-04-18
          • 2014-03-04
          相关资源
          最近更新 更多