015-002-004
アップキャスト:サブクラスからスーパークラスへ
中級
問題説明
アップキャスト:サブクラスからスーパークラスへ
この問題では: VehicleクラスとCarクラスを定義し、標準入力から車両名を読み込んで、CarのインスタンスをVehicle型変数にアップキャストして代入した後、move()メソッドを呼び出し、結果を標準出力に表示するプログラムを作成します。
学習目標: サブクラスのインスタンスをスーパークラス型の変数に代入するアップキャストを理解する
概要
Vehicleクラスとその子クラスCarを作成し、アップキャストを使って異なる型の変数に格納してください。
仕様
- Vehicle クラス: nameフィールドを持ち、コンストラクタで初期化する。move()メソッドで "{name} is moving" を出力
- Car クラス: Vehicleを継承し、コンストラクタでsuper(name)を呼ぶ。move()をオーバーライドして "{name} is driving" を出力
- 標準入力から車両名を読み込み、Carのインスタンスを Vehicle型変数に代入(アップキャスト)
入力
車両名(文字列)を1行で入力します。
出力形式
{name} is driving
入力が Toyota の場合:
Toyota is driving
