1

Java のすべてのクラスが暗黙的に Object クラスを拡張し、Java で多重継承が不可能な場合、クラスを拡張するにはどうすればよいでしょうか?

4

5 に答える 5

3

クラス A を拡張すると、そのクラスは Object を拡張するため、B は A を暗黙的に拡張し、Object も拡張します。

于 2013-04-11T06:00:24.827 に答える
3

「Java には多重継承がありません」とは、親が親を持つことができないということではなく、2 つの異なる親を持つことができないことを意味します。

C++ は、多重継承を可能にする言語の例です: http://www.learncpp.com/cpp-tutorial/117-multiple-inheritance/

多重継承は次のようになります。

class Teacher: public Person, public Employee

これは、「Teacher が Person と Employee を拡張し、そのフィールドとメソッドを継承する」ことを意味します。

多重継承の代わりに、オブジェクトがサポートするすべての動作 (または必要に応じてコントラクト) を表すインターフェイスを作成して実装する必要があります。Java は、Closeable や Serializable などのインターフェイスにこれを使用します。

于 2013-04-11T06:00:38.797 に答える
1

多重継承は、2 つ以上のスーパー クラスから継承する単一のクラスの概念です。クラスがスーパー クラスから継承し、そのスーパー クラスが別のスーパー クラスから継承する場合、それは多重継承とは見なされません。それはまだ単一の継承です。

サブクラスのオブジェクトを作成すると、オブジェクト階層は次の順序で作成されます

オブジェクトクラス–>スーパークラス–>サブクラス;

Java のすべてのクラスが、間接的または直接的に Object クラスから継承されていることは事実です。

したがって、この場合、サブクラスは間接的にオブジェクト クラスを継承します。

于 2013-04-11T06:11:39.333 に答える
1

他のクラスを拡張しないすべてのクラスは、オブジェクト クラスを拡張します。Anther クラスの例を拡張すると、Vector クラスの外観をクラス Vector の階層に拡張すると、オブジェクトを明示的に拡張する Anther クラスを拡張しない単純なクラスで終了します。任意のクラスが別のクラスを拡張し、親クラスが拡張するすべてのクラスを明示的に拡張します。

于 2013-04-11T06:03:37.280 に答える
0

Java には多重継承はありませんが、クラス階層があります。Java での継承は推移的です。クラス A が Object を拡張し、クラス B が A を拡張する場合、推移性によって A は Object を拡張します。

于 2013-04-11T06:09:29.850 に答える