// 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」メソッドが呼び出されます。