Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的多重继承支持_Java_Multiple Inheritance - Fatal编程技术网

Java中的多重继承支持

Java中的多重继承支持,java,multiple-inheritance,Java,Multiple Inheritance,Java不支持Java中的多重继承。。 但在eclipse中,我们可以看到默认情况下任何扩展对象类的类,如果我们尝试添加未实现的方法,我们可以看到对象类的所有方法 现在我想说的是,我可以让我的类扩展任何类,比如线程。 所以现在我的类默认通过用户定义的边和对象扩展线程。。。 这意味着多类继承?您提到的行为是java默认支持的多级继承这是多级继承,而不是多重继承 any类默认扩展对象类 这意味着AD类也扩展了对象。类似于多重继承的行为可以在Java接口中看到: // implements BOTH

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

现在我想说的是,我可以让我的类扩展任何类,比如线程。 所以现在我的类默认通过用户定义的边和对象扩展线程。。。
这意味着多类继承?

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

这是多级继承,而不是多重继承

any类默认扩展对象类


这意味着AD类也扩展了对象。

类似于多重继承的行为可以在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?
    }
}
//不允许,完整的螺母
公共类Amalgam扩展ArrayList,JPanel,字体{
公共汞合金(){

super();//一个类只能有一个超类,即在java中,一个类只能扩展一个类。如果未指定一个超类,则它会隐式扩展到
对象

因此,假设类是
MyClass
,它扩展了
MySuperClass
。正如
MyClass
扩展了
MySuperClass
,所以它不会直接扩展
Object
。但是
MySuperClass
类本身并没有显式扩展任何类,所以它扩展了
Object
,反过来又扩展了
MyClass
还扩展层次结构中的
对象


因此,它不是多重继承,而是多层继承。希望它能有所帮助。

不。
YourClass
Object
类始终位于继承层次结构的顶部,在这种情况下,会创建一个类链-多层继承。1.不能在Java中扩展“final”类。2.我不知道ULD建议在C++语言中检查多重继承的定义。这个问题有很多版本,所以每个人都在说,如果我不使用扩展,我的类将直接继承对象类,否则如果我引用线程类,它将离开,并通过线程将对象定义保持到对象…RYT!信息。既然你提到了Runnable。Leme会问为什么Thread类实现Runnable。Thread不应该有自己的Runnable定义吗?抱歉,如果Q是跛脚的:)这实际上是一个合理的问题。按照应该的方式,Thread本身就是一个Runnable,它运行一个Runnable,然后交给构造函数。
new Thread(new Runnable()@Override public void run(){}).start();
请参阅“定义和启动线程”:另一种方法是,线程是一个可运行的线程,具有一些额外的功能。您可以扩展线程并重写
run
。但从技术上讲,第一种方法“更好”。