015-001-009
ポリモーフィズム:メソッドのオーバーライド
中級
問題説明
ポリモーフィズム:メソッドのオーバーライド
この問題では: Animal・Dog・Catクラスを作成し、makeSound()メソッドをオーバーライドすることで、入力された動物の種類に応じて鳴き声を出力するプログラムを作成します。
学習目標: 親クラスのメソッドをサブクラスでオーバーライドし、同じメソッド呼び出しで異なる動作を実現する方法を理解する
概要
ポリモーフィズム(多態性)では、親クラス型の変数でサブクラスのオブジェクトを参照できます。オーバーライドされたメソッドを呼び出すと、実際のオブジェクト型に応じた動作が実行されます。
仕様
以下のクラスを作成してください:
Animalクラス:
makeSound()メソッド: "Some sound"と出力
Dogクラス (Animalを継承):
makeSound()をオーバーライド: "Woof!"と出力
Catクラス (Animalを継承):
makeSound()をオーバーライド: "Meow!"と出力
Mainクラス:
- 標準入力から動物の数Nを読み込む
- 続くN行から動物の種類("Animal"、"Dog"、"Cat"のいずれか)を読み込む
- 各動物のオブジェクトをAnimal型変数に代入し、
makeSound()を呼び出す
入力形式
N
動物の種類1
動物の種類2
...
- 1行目: 動物の数 N(1以上)
- 2行目以降: 動物の種類("Animal"、"Dog"、"Cat"のいずれか)
出力形式
各動物のmakeSound()の出力(N行)
