015-003-009

安全なダウンキャストとClassCastException

上級

問題説明

安全なダウンキャストとClassCastException

学習目標: 不適切なダウンキャストで発生するClassCastExceptionの原因と対処法を理解する

この問題では: instanceof演算子を使ってAnimalオブジェクトをDogまたはCatに安全にダウンキャストし、動物の種類と名前を標準出力に表示するプログラムを作成します。

概要

標準入力から動物の種類と名前を読み込み、Animal型のオブジェクトに対して安全にダウンキャストを行い、種類を判定して出力するプログラムを作成してください。

入力形式

N
type1 name1
type2 name2
...
typeN nameN
  • N: 動物の数(1以上)
  • type: DogCatAnimal のいずれか
  • name: 動物の名前

仕様

  1. AnimalDog(extends Animal)、Cat(extends Animal)クラスを定義
  2. safeCast(Animal a) staticメソッドを定義:
    • DogならDogにキャストして Dog: <name> を出力
    • CatならCatにキャストして Cat: <name> を出力
    • どちらでもなければ Unknown: <name> を出力
  3. mainでScannerを使い入力を読み込み、typeに応じてDog/Cat/Animalオブジェクトを生成してsafeCastを呼ぶ

入力例

3
Dog Rex
Cat Mimi
Animal Unknown

出力例

Dog: Rex
Cat: Mimi
Unknown: Unknown

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

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

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

新規登録