015 ポリモーフィズム(動的な配列) 015 解答例

// Vehicle クラスの定義
class Vehicle {
    // start メソッド
    public void start() {
        System.out.println("Vehicle is starting");
    }
}

// Car クラスの定義(Vehicle クラスを拡張)
class Car extends Vehicle {
    // Car クラスの start メソッドをオーバーライド
    @Override
    public void start() {
        System.out.println("Car is starting");
    }
}

// Motorcycle クラスの定義(Vehicle クラスを拡張)
class Motorcycle extends Vehicle {
    // Motorcycle クラスの start メソッドをオーバーライド
    @Override
    public void start() {
        System.out.println("Motorcycle is starting");
    }
}

// メインクラス
public class Main {
    public static void main(String[] args) {
        // 動的な配列の作成(Vehicle 型のオブジェクトを格納するため)
        Vehicle[] vehicles = new Vehicle[3];

        // Car オブジェクトを配列に格納
        vehicles[0] = new Car();

        // Motorcycle オブジェクトを配列に格納
        vehicles[1] = new Motorcycle();

        // Vehicle オブジェクトを配列に格納
        vehicles[2] = new Vehicle();

        // 配列からオブジェクトを取り出して start メソッドを呼び出す
        for (Vehicle vehicle : vehicles) {
            vehicle.start();
        }
    }
}

このプログラムでは、動的な配列に異なる種類の「Vehicle」型のオブジェクトを格納しています。そして、forループを使用して各オブジェクトから「start」メソッドを呼び出しています。ポリモーフィズムにより、各オブジェクトの実際のクラスに基づいた「start」メソッドが呼び出されます。

「015 ポリモーフィズム」問題集リスト