015-002-008

アップキャストでポリモーフィズムを実現する

初級

問題説明

アップキャストでポリモーフィズムを実現する

この問題では: Scannerで動物の種類を読み取り、アップキャストを使ってAnimal型変数にDogまたはCatオブジェクトを代入し、同じspeak()メソッド呼び出しでサブクラスごとに異なる出力を得るプログラムを作成します。

学習目標: アップキャスト(サブクラスをスーパークラス型で扱う)の基本を理解する

概要

Scannerで動物の種類(Dog または Cat)を読み取り、Animal型の変数に対応するオブジェクトを代入して、speak()メソッドを呼ぶプログラムを作成してください。

入力形式

N
type1
type2
...
typeN
  • N: 動物の数(1以上)
  • typeX: Dog または Cat

仕様

  1. Animal クラスvoid speak() メソッドを定義(... と出力)
  2. Dog クラスがAnimalを継承し、speak()を Woof!オーバーライド
  3. Cat クラスがAnimalを継承し、speak()を Meow! にオーバーライド
  4. mainでScannerから入力を読み取り、Animal型変数に適切なオブジェクトを代入してspeak()を呼ぶ

入出力例

入力:

2
Dog
Cat

出力:

Woof!
Meow!

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

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

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

新規登録