015-001-010
基本的なポリモーフィズム
上級
問題説明
基本的なポリモーフィズム
この問題では: Animalクラスと2つのサブクラス(Dog、Cat)を定義し、標準入力から動物の種類を読み込んでAnimal型配列に格納し、ポリモーフィックにspeak()メソッドを呼び出すプログラムを作成します。
学習目標: メソッドのオーバーライドとポリモーフィズムの基本動作を理解する
概要
ポリモーフィズムにより、親クラスの参照型で子クラスのオブジェクトを扱えます。実行時に子クラスのオーバーライドメソッドが呼ばれます。
仕様
- Animalクラスにspeak()メソッドを定義する("..."を表示)
- DogクラスがAnimalを継承しspeak()をオーバーライドする("Woof!"を表示)
- CatクラスがAnimalを継承しspeak()をオーバーライドする("Meow!"を表示)
- 標準入力から動物の数と種類を読み込み、Animal型配列に格納してループでspeak()を呼ぶ
入力形式
n
動物の種類1
動物の種類2
...
- 1行目: 動物の数 n
- 続くn行: 各動物の種類("Animal"、"Dog"、"Cat" のいずれか)
出力形式
各動物のspeak()の出力を1行ずつ表示する。
入力例
3
Animal
Dog
Cat
出力例
...
Woof!
Meow!
