015-003-007
ダウンキャスト: instanceof検査
中級
問題説明
ダウンキャスト: instanceof検査
この問題では: Vehicle型の配列に格納されたCar・Bicycleオブジェクトをinstanceofで型チェックし、安全にダウンキャストしてサブクラス固有のメソッドを呼び出すプログラムを作成します。
学習目標: instanceofによる型チェックの後に安全なダウンキャストを行う方法を理解する
概要
スーパークラスVehicleとサブクラスCar、Bicycleを作成し、スーパークラス型の配列に格納された要素をinstanceofで型チェックした上でダウンキャストし、サブクラス固有のメソッドを呼び出すプログラムを作成してください。
仕様
Vehicleクラス
String nameフィールドを持つ- コンストラクタで
nameを初期化する describe()メソッドで"Vehicle: " + nameを返す
Carクラス(Vehicleを継承)
- コンストラクタで
nameをsuperに渡す honk()メソッドでname + " honks!"を返す
Bicycleクラス(Vehicleを継承)
- コンストラクタで
nameをsuperに渡す 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!
