015-002-010

アップキャストとダウンキャスト

上級

問題説明

アップキャストとダウンキャスト

この問題では: Scannerで読み込んだ動物の種類に基づいてAnimal/Dog/Catクラスのオブジェクトを生成し、アップキャスト後のメソッド呼び出しとinstanceofを使った安全なダウンキャストを行い、結果を標準出力に表示するプログラムを作成します。

学習目標: 参照型のアップキャストとダウンキャストの動作と安全な使い方を理解する

概要

アップキャストは子→親型への変換(暗黙的)、ダウンキャストは親→子型への変換(明示的)です。instanceofで型を確認してからダウンキャストするのが安全です。

仕様

  • Scannerで動物の種類("Dog"、"Cat"、"Animal"のいずれか)を1行読み込む
  • AnimalクラスにgetType()メソッドを定義する
  • DogクラスにgetType()とfetch()メソッドを定義する
  • CatクラスにgetType()とmeow()メソッドを定義する
  • 入力に応じたオブジェクトをAnimal型の変数にアップキャストして代入する
  • アップキャスト後のgetType()呼び出しと、instanceofでのダウンキャストを行う

入力形式

動物の種類("Dog"、"Cat"、"Animal"のいずれか)

出力形式

  • Type: [getType()の戻り値] を出力
  • Dogの場合: Fetching! を出力
  • Catの場合: Meowing! を出力
  • どちらでもない場合: Unknown type を出力

入出力例

入力:

Dog

出力:

Type: Dog
Fetching!

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

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

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

新規登録