4

4 つの異なる Java タイプ ( と呼びますA B C D) がありA、 のサブタイプでBありA、 のサブタイプでCありB、 のサブタイプでDありC、 のサブタイプであるD場合、これは合法ですか? そこに例はありますか?

図を描く:

           D
          | |  
        |     |
       B       C
        |     |
          | |
           A

したがって、D はスーパータイプです。ありがとう!

4

4 に答える 4

6

言語としての Java は多重継承をサポートしていないため、これは継承では正しくありません。

ただし、複数のインターフェイスを実装することでこれを行うことができます。これは、多重継承とは異なります。

はい、それは可能であり、何かがインターフェイスのインスタンスであるかどうかを確認できる限りこれを行うことができますが、これはクラスタイプと同じではなく、図は描画したものとは少し異なって見えます.

于 2013-02-12T09:14:34.200 に答える
1

Java では、このような図は、D、C、および B がすべてインターフェイスである場合にのみ発生します。これは合法であり、機能します。例 - instance の 2 つのインターフェイスを実装する任意のクラスComparable。とHashable。Object は、これらの両方のインターフェースの共通の祖先です (ただし、直接ではありません)。

于 2013-02-12T09:13:34.313 に答える
1

これは合法ですか?

うん。Java は、クラスでの多重継承をサポートしていません。マルチレベルのみ。

したがって、とのA両方から同時に継承することはできません。BC

参照: Java での多重継承およびJava インターフェイスは多重継承をどのようにシミュレートしますか?

于 2013-02-12T09:13:57.290 に答える
0

Java は多重継承をサポートしていません。

そして、なぜですか?ここで見ることができます。あなたが示した継承階層は、典型的なひし形の問題です。

于 2013-02-12T10:44:19.343 に答える