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];
shapes[0] = new Circle();
shapes[1] = new Rectangle();
shapes[2] = new Shape(); // Shapeも格納可能
// 各オブジェクトがどのクラスのインスタンスかを確認
for (Shape shape : shapes) {
if (shape instanceof Circle) {
System.out.println("This is an instance of Circle");
} else if (shape instanceof Rectangle) {
System.out.println("This is an instance of Rectangle");
} else if (shape instanceof Shape) {
System.out.println("This is an instance of Shape");
}
}
}
}
このプログラムでは、instanceof
演算子を使用して、各オブジェクトがどのクラスのインスタンスであるかを確認しています。
出力結果:
This is an instance of Circle
This is an instance of Rectangle
This is an instance of Shape