Java で 2つのクラスを拡張する

Mohammad Irfan 2023年10月12日
  1. Java でクラスを拡張する
  2. Java で 2つのクラスを拡張する
  3. Java で 2つのインターフェースを拡張する
Java で 2つのクラスを拡張する

このチュートリアルでは、Java で 2つ以上のクラスを拡張する方法を紹介します。また、トピックを理解するのに役立つサンプルコードもいくつか含まれています。

継承は、クラスを別のクラスに拡張してクラスのプロパティにアクセスできるようにする JavaOOP 機能です。Java では、クラスを任意のクラスに拡張できますが、制限があります。これは、クラスが一度に 1つのクラスしか拡張できないことを意味します。複数のクラスを拡張すると、コードの実行に失敗します。

クラスがクラスを拡張するとき、それは単一継承と呼ばれます。クラスが複数のクラスを拡張する場合、それは多重継承と呼ばれ、Java では許可されていません。

いくつかの例を見て、完全な概念を理解しましょう。

Java でクラスを拡張する

Java は多重継承を許可していません。この例では、2つのクラスを作成しました。クラスは別のクラスに拡張され、正常に実行されます。これは、Java が単一のクラスの拡張を許可することを意味します。それでも、2つのクラスを拡張するとどうなるでしょうか。これは、次の例で確認できます。

class Run {
  int speed;
  void showSpeed() {
    System.out.println("Current Speed : " + speed);
  }
  public class SimpleTesting extends Run {
    public static void main(String[] args) {
      SimpleTesting run = new SimpleTesting();
      run.showSpeed();
      run.speed = 20;
      run.showSpeed();
    }
  }
}

出力:

Current Speed : 0
Current Speed : 20

Java で 2つのクラスを拡張する

このメソッド例では、クラスが 2つのクラスを拡張します。これは、多重継承を意味します。Java はこのプロセスを許可しないため、コードは実行されず、コンパイル時エラーが発生します。以下の例を参照してください。

class Run {
  int speed;
  void showSpeed() {
    System.out.println("Current Speed : " + speed);
  }
}
class Car {
  String color;
  int topSpeed;
}
public class SimpleTesting extends Run, Car {
  public static void main(String[] args) {
    SimpleTesting run = new SimpleTesting();
    run.showSpeed();
    run.speed = 20;
    run.showSpeed();
  }
}

出力:

error

Java で 2つのインターフェースを拡張する

2つのクラスは許可されていませんが、クラスは Java で 2つのインターフェースを拡張できます。この言語では、クラス内の 2つ以上のインターフェースを拡張できます。このコードはエラーなしでスムーズに実行されます。したがって、多重継承を拡張する場合は、インターフェースを使用することをお勧めします。以下の例を参照してください。

interface Run {
  int speed = 10;
  static void showSpeed() {
    System.out.println("Current Speed : " + speed);
  }
}

interface Car {
  String color = "Red";
  int topSpeed = 100;
}

public class Main implements Run, Car {
  public static void main(String[] args) {
    Main run = new Main();
    Run.showSpeed();
    System.out.println("Top Speed " + Car.topSpeed);
  }
}

出力:

Current Speed : 10
Top Speed 100

関連記事 - Java Class