Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaで多重継承がサポートされていない理由


Javaでは、クラスは複数のクラスを拡張できません。したがって、以下は違法です-

public class extends Animal, Mammal{}

ただし、クラスは1つ以上のインターフェースを実装できるため、Javaは多重継承の不可能性を取り除くことができます。

この背後にある理由は、あいまいさを防ぐためです。

クラスBがクラスAとクラスCを拡張し、クラスAとCの両方が同じメソッドdisplay()を持っている場合を考えてみます。

現在、Javaコンパイラは、どの表示メソッドを継承するかを決定できません。このような状況を防ぐために、Javaでは多重継承は許可されていません。


  1. C++での多重継承

    多重継承は、クラスが複数の基本クラスから継承する場合に発生します。したがって、クラスは、多重継承を使用して複数の基本クラスから機能を継承できます。これは、C++などのオブジェクト指向プログラミング言語の重要な機能です。 多重継承を示す図を以下に示します- C++で多重継承を実装するプログラムは次のとおりです- 例 #include <iostream> using namespace std; class A {    public:    int a = 5;    A() {     &

  2. Javaでの継承の種類

    Javaは3種類の継承をサポートしています- 単一レベルの継承-クラスは単一のクラスからプロパティを継承します。たとえば、クラスBはクラスAを継承します。 マルチレベル継承-クラスは、プロパティを継承するクラスからプロパティを継承します 階層継承-複数のクラスが単一のクラスからプロパティを継承します。たとえば、クラスBはクラスAを継承し、クラスCはクラスAを継承します。