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

コードを実行してみませんか?

この問題のコードエディタと実行機能を使用するには、ログインしてください。

アカウントをお持ちでない方

新規登録