×
継承とポリモーフィズム
親クラス Shape の参照変数群を通じて、それぞれの図形の描画処理を統一的に呼び出すポリモーフィズムの例です。
abstract class Shape {
    abstract void draw();
}

class Circle extends Shape {
    void draw() { System.out.println("円を描く"); }
}

class Square extends Shape {
    void draw() { System.out.println("四角を描く"); }
}

public class Main {
    public static void main(String[] args) {
        // スーパークラス型の配列に異なるサブクラスのインスタンスを格納
        Shape[] shapes = { new Circle(), new Square() };

        for (Shape s : shapes) {
            s.draw(); // 変数の型はShapeだが、実体(Circle/Square)のdraw()が動く!
        }
    }
}