class Shape {
public void draw() {
System.out.println("Drawing a shape");
}
}
class Circle extends Shape {
@Override
public void draw() {
System.out.println("Drawing a circle");
}
}
class Rectangle extends Shape {
@Override
public void draw() {
System.out.println("Drawing a rectangle");
}
}
public class Main {
public static void main(String[] args) {
// 動的な配列の作成
Shape[] shapes = new Shape[3];
// Circleオブジェクトを配列に格納
shapes[0] = new Circle();
// Rectangleオブジェクトを配列に格納
shapes[1] = new Rectangle();
// Shapeオブジェクトを配列に格納
shapes[2] = new Shape();
// 配列からオブジェクトを取り出してdrawメソッドを呼び出す
for (Shape shape : shapes) {
shape.draw();
}
}
}
このプログラムでは、動的な配列を作成し、その中に「Circle」、 「Rectangle」、および「Shape」のオブジェクトを格納しています。 そして、forループを使用して配列からオブジェクトを取り出し、「draw」メソッドを呼び出しています。 ポリモーフィズムにより、各オブジェクトの実際のクラスに基づいて適切な「draw」メソッドが呼び出されます。