015-002-008
アップキャストでポリモーフィズムを実現する
初級
問題説明
アップキャストでポリモーフィズムを実現する
この問題では: Scannerで動物の種類を読み取り、アップキャストを使ってAnimal型変数にDogまたはCatオブジェクトを代入し、同じspeak()メソッド呼び出しでサブクラスごとに異なる出力を得るプログラムを作成します。
学習目標: アップキャスト(サブクラスをスーパークラス型で扱う)の基本を理解する
概要
Scannerで動物の種類(Dog または Cat)を読み取り、Animal型の変数に対応するオブジェクトを代入して、speak()メソッドを呼ぶプログラムを作成してください。
入力形式
N
type1
type2
...
typeN
- N: 動物の数(1以上)
- typeX:
DogまたはCat
仕様
Animalクラスにvoid speak()メソッドを定義(...と出力)DogクラスがAnimalを継承し、speak()をWoof!にオーバーライドCatクラスがAnimalを継承し、speak()をMeow!にオーバーライド- mainでScannerから入力を読み取り、Animal型変数に適切なオブジェクトを代入してspeak()を呼ぶ
入出力例
入力:
2
Dog
Cat
出力:
Woof!
Meow!
