Java のすべてのクラスが暗黙的に Object クラスを拡張し、Java で多重継承が不可能な場合、クラスを拡張するにはどうすればよいでしょうか?
5 に答える
クラス A を拡張すると、そのクラスは Object を拡張するため、B は A を暗黙的に拡張し、Object も拡張します。
「Java には多重継承がありません」とは、親が親を持つことができないということではなく、2 つの異なる親を持つことができないことを意味します。
C++ は、多重継承を可能にする言語の例です: http://www.learncpp.com/cpp-tutorial/117-multiple-inheritance/
多重継承は次のようになります。
class Teacher: public Person, public Employee
これは、「Teacher が Person と Employee を拡張し、そのフィールドとメソッドを継承する」ことを意味します。
多重継承の代わりに、オブジェクトがサポートするすべての動作 (または必要に応じてコントラクト) を表すインターフェイスを作成して実装する必要があります。Java は、Closeable や Serializable などのインターフェイスにこれを使用します。
多重継承は、2 つ以上のスーパー クラスから継承する単一のクラスの概念です。クラスがスーパー クラスから継承し、そのスーパー クラスが別のスーパー クラスから継承する場合、それは多重継承とは見なされません。それはまだ単一の継承です。
サブクラスのオブジェクトを作成すると、オブジェクト階層は次の順序で作成されます
オブジェクトクラス–>スーパークラス–>サブクラス;
Java のすべてのクラスが、間接的または直接的に Object クラスから継承されていることは事実です。
したがって、この場合、サブクラスは間接的にオブジェクト クラスを継承します。
他のクラスを拡張しないすべてのクラスは、オブジェクト クラスを拡張します。Anther クラスの例を拡張すると、Vector クラスの外観をクラス Vector の階層に拡張すると、オブジェクトを明示的に拡張する Anther クラスを拡張しない単純なクラスで終了します。任意のクラスが別のクラスを拡張し、親クラスが拡張するすべてのクラスを明示的に拡張します。
Java には多重継承はありませんが、クラス階層があります。Java での継承は推移的です。クラス A が Object を拡張し、クラス B が A を拡張する場合、推移性によって A は Object を拡張します。