0

Java は Java で多重継承をサポートしていません。しかし、Eclipse で待機すると、デフォルトで任意のクラスが OBJECT クラスを拡張することがわかります。実装されていないメソッドを追加しようとすると、Object クラスのすべてのメソッドが表示されます。

今私のポイントは、私のクラスがスレッドなどの任意のクラスを拡張できるようにすることです。だから今、私のクラスはユーザー定義側でスレッドを拡張し、デフォルトでオブジェクトを拡張しています...それは複数のクラス継承を意味しますか?

4

5 に答える 5

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?
    }
}
于 2013-11-05T07:12:10.623 に答える
1

クラスはスーパークラスを 1 つしか持つことができません。つまり、Java では、1 つのクラスは 1 つのクラスしか拡張できません。いずれかが指定されていない場合は、暗黙的に に拡張されObjectます。

したがって、クラスが MyClassであり、 extends であるとしますMySuperClass。as MyClassextendsMySuperClassなので直接は伸びませんObject。ただし、MySuperClassクラス自体はクラスを明示的に拡張していないため、Object拡張し、さらに階層内でMyClass拡張します。Object

つまり、多重継承ではなく、多重継承です。それが役に立てば幸い。

于 2013-11-05T07:22:58.730 に答える
0

どのクラスもデフォルトで OBJECT クラスを拡張します

つまり、Theadクラスも Object を拡張します。

于 2013-11-05T07:11:59.473 に答える
0

あなたが言及した動作は、Javaがデフォルトでサポートするマルチレベル継承です

于 2013-11-05T06:55:16.543 に答える
0

これはマルチレベル継承であり、多重継承ではありません。

于 2013-11-05T06:56:19.727 に答える