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

Javaのマルチレベル継承(多段階継承)とは?サンプルコードでわかりやすく解説

マルチレベル継承(多段階継承)とは、あるクラスが別のクラスのプロパティやメソッドを継承し、その継承元のクラス自体もさらに上位のクラスから継承を行っている形態のことです。「祖父母 → 親 → 子」のように、継承関係が複数の階層にわたって連鎖する構造を指します。

Javaでは extends キーワードを使用することで、このような多段階の継承を簡単に実現できます。なお、Javaは複数のクラスを同時に継承する「多重継承」はサポートしていませんが、マルチレベル継承であれば問題なく利用できます。

マルチレベル継承のサンプルコード

以下の例では、Shape(図形)クラスを基底クラスとし、それを Rectangle(長方形)クラスが継承、さらにその Rectangle を Cube(立方体)クラスが継承しています。

class Shape {
    public void display() {
        System.out.println("Inside display");
    }
}
class Rectangle extends Shape {
    public void area() {
        System.out.println("Inside area");
    }
}
class Cube extends Rectangle {
    public void volume() {
        System.out.println("Inside volume");
    }
}
public class Tester {
    public static void main(String[] arguments) {
        Cube cube = new Cube();
        cube.display();
        cube.area();
        cube.volume();
    }
}

実行結果

Inside display
Inside area
Inside volume

コードの解説

このプログラムでは、次のような継承階層が構築されています。

  • Shape:最上位の基底クラス。display() メソッドを持つ。
  • Rectangle:Shape を継承し、area() メソッドを追加。
  • Cube:Rectangle を継承し、volume() メソッドを追加。

main メソッド内で Cube クラスのインスタンスを生成すると、Cube 自身のメソッドだけでなく、スーパークラスである Rectangle および Shape のメソッドもすべて呼び出すことができます。実行結果を見ると、cube.display()cube.area()cube.volume() の順に、各クラスで定義されたメソッドの出力が表示されており、継承チェーン上のすべての機能が Cube から利用可能になっていることがわかります。

押さえておきたいポイント

  • マルチレベル継承では、子クラスは直系の祖先クラスすべてのフィールドやメソッドを受け継ぐ。
  • Javaのクラス継承は1つの親クラスのみ(単一継承)だが、階層を重ねることでマルチレベル継承が実現できる。
  • 継承階層が深くなりすぎると可読性や保守性が低下するため、必要以上に深い階層構造は避けるのが望ましい。
  1. C#におけるマルチレベル継承の解説と実装例

    マルチレベル継承(Multilevel Inheritance)とは、ある派生クラスからさらに別の派生クラスを作成する継承の形態のことです。C#では、1つのクラスを基底クラスとして継承し、その派生クラスをさらに別のクラスが継承するという、階層的な構造を実現できます。 この概念を分かりやすく表す例として、「祖父 → 父 → 息子」という家族関係がよく使われます。祖父クラスを父クラスが継承し、さらにその父クラスを息子クラスが継承することで、3段階のマルチレベル継承が実現します。 マルチレベル継承の仕組み マルチレベル継承では、最下層の派生クラスは、上位のすべての基底クラスのメンバー(メソッドやプロ

  2. Javaの継承の種類をわかりやすく解説!3つのパターンと具体例

    Javaでサポートされる3種類の継承Javaにおける継承(Inheritance)は、既存のクラスのプロパティやメソッドを別のクラスが引き継ぐことで、コードの再利用性を高め、保守性の高いプログラムを実現する重要な仕組みです。Javaでは、主に以下の3種類の継承パターンが利用できます。1. 単一レベル継承(Single Level Inheritance)ひとつのクラスが、別の単一のクラスからプロパティやメソッドを引き継ぐ、最も基本的な継承形式です。例:クラスBがクラスAを継承する。2. 多段階継承(Multilevel Inheritance)あるクラスが、すでに別のクラスを継承しているクラス