015-001-010

基本的なポリモーフィズム

上級

問題説明

基本的なポリモーフィズム

この問題では: Animalクラスと2つのサブクラス(DogCat)を定義し、標準入力から動物の種類を読み込んで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!

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

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

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

新規登録