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

class Instrument {
    void play() {
        System.out.println("Playing an instrument");
    }
}

class Piano extends Instrument {
    void play() {
        System.out.println("Playing the piano");
    }
}

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

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

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

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

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