015-005-004
ポリモーフィズム:親クラス型配列で子クラスを管理
中級
問題説明
ポリモーフィズム:親クラス型配列で子クラスを管理
この問題では: Animalを親クラスとしてDogとCatをそれぞれ継承で作成し、入力で指定された種類と数の動物をAnimal型配列にまとめて格納した後、各オブジェクトのspeak()メソッドをポリモーフィズムで呼び出し、結果を標準出力に表示するプログラムを作成します。
学習目標: 親クラス型の配列で異なる子クラスのオブジェクトを統一的に扱う方法を理解する
概要
Animal クラスを継承した Dog と Cat を作成し、入力に応じて Animal 型の配列を構築して各オブジェクトの speak メソッドを呼び出してください。
仕様
- Animal クラス: speak() メソッド("Animal speaks"を出力)
- Dog クラス: speak() をオーバーライド("Woof!"を出力)
- Cat クラス: speak() をオーバーライド("Meow!"を出力)
- Animal 型配列に入力された種類の動物を格納
入力形式
N
種類1
種類2
...
種類N
- 1行目: 動物の数 N(1以上)
- 続く N 行: 各動物の種類("Dog" または "Cat")
出力形式
各動物の speak() の結果を順に1行ずつ出力します。
入出力例
入力:
3
Dog
Cat
Dog
出力:
Woof!
Meow!
Woof!
