015-003-007

ダウンキャスト: instanceof検査

中級

問題説明

ダウンキャスト: instanceof検査

この問題では: Vehicle型の配列に格納されたCarBicycleオブジェクトをinstanceofで型チェックし、安全にダウンキャストしてサブクラス固有のメソッドを呼び出すプログラムを作成します。

学習目標: instanceofによる型チェックの後に安全なダウンキャストを行う方法を理解する

概要

スーパークラスVehicleとサブクラスCarBicycleを作成し、スーパークラス型の配列に格納された要素をinstanceofで型チェックした上でダウンキャストし、サブクラス固有のメソッドを呼び出すプログラムを作成してください。

仕様

Vehicleクラス

  • String name フィールドを持つ
  • コンストラクタnameを初期化する
  • describe() メソッドで "Vehicle: " + name を返す

Carクラス(Vehicleを継承

  • コンストラクタでnamesuperに渡す
  • honk() メソッドで name + " honks!" を返す

Bicycleクラス(Vehicleを継承)

  • コンストラクタでnamesuperに渡す
  • ringBell() メソッドで name + " rings bell!" を返す

Mainクラス

  • Vehicle型の配列を作成し、new Car("Sedan")new Bicycle("Mountain") を格納する
  • 配列をループし、各要素に対して:
    • まずdescribe()の結果を出力する
    • Carのインスタンスならhonk()の結果を出力する
    • BicycleのインスタンスならringBell()の結果を出力する

出力形式

Vehicle: Sedan
Sedan honks!
Vehicle: Mountain
Mountain rings bell!

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

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

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

新規登録