015 ポリモーフィズム(アップキャスト) 006 解答例

class Shape {
    void draw() {
        System.out.println("Drawing a shape");
    }
}

class Circle extends Shape {
    void draw() {
        System.out.println("Drawing a circle");
    }
}

public class Main {
    public static void main(String[] args) {
        // Shape クラスのオブジェクトを作成
        Shape shape = new Shape();
        // Shape クラスの draw メソッドを呼び出す
        shape.draw();

        // Circle クラスのオブジェクトを作成
        Circle circle = new Circle();
        // Circle クラスの draw メソッドを呼び出す(オーバーライドされたバージョンが呼ばれる)
        circle.draw();

        // アップキャストを使用して Shape クラスの参照変数で Circle クラスのオブジェクトを操作
        Shape upcastedCircle = new Circle();
        // Shape クラスの参照変数で Circle クラスの draw メソッドを呼び出す(オーバーライドされたバージョンが呼ばれる)
        upcastedCircle.draw();
    }
}

この例では、Shape クラスと Circle クラスを使用して、メインクラスでそれぞれのクラスのオブジェクトを作成しています。そして、アップキャストを使用して Shape クラスの参照変数で Circle クラスのオブジェクトを操作しています。

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