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
クラスのオブジェクトを操作しています。