015-003-009
安全なダウンキャストとClassCastException
上級
問題説明
安全なダウンキャストとClassCastException
学習目標: 不適切なダウンキャストで発生するClassCastExceptionの原因と対処法を理解する
この問題では: instanceof演算子を使ってAnimalオブジェクトをDogまたはCatに安全にダウンキャストし、動物の種類と名前を標準出力に表示するプログラムを作成します。
概要
標準入力から動物の種類と名前を読み込み、Animal型のオブジェクトに対して安全にダウンキャストを行い、種類を判定して出力するプログラムを作成してください。
入力形式
N
type1 name1
type2 name2
...
typeN nameN
N: 動物の数(1以上)type:Dog、Cat、Animalのいずれかname: 動物の名前
仕様
Animal、Dog(extends Animal)、Cat(extends Animal)クラスを定義safeCast(Animal a)staticメソッドを定義:- DogならDogにキャストして
Dog: <name>を出力 - CatならCatにキャストして
Cat: <name>を出力 - どちらでもなければ
Unknown: <name>を出力
- DogならDogにキャストして
- mainでScannerを使い入力を読み込み、typeに応じてDog/Cat/Animalオブジェクトを生成してsafeCastを呼ぶ
入力例
3
Dog Rex
Cat Mimi
Animal Unknown
出力例
Dog: Rex
Cat: Mimi
Unknown: Unknown
