015-002-007
アップキャストで動物を扱う
初級
問題説明
アップキャストで動物を扱う
この問題では: Animal親クラスにnameフィールドとspeak()メソッドを定義し、Dogサブクラスでオーバーライドした上で、DogインスタンスをAnimal型変数に代入(アップキャスト)してメソッドを呼び出し、結果を標準出力に表示するプログラムを作成します。
学習目標: アップキャストによるポリモーフィズムの基本を理解する
概要
Animalクラスにnameフィールドとコンストラクタ、speak()メソッドを定義し、DogクラスでコンストラクタとSpeak()をオーバーライドします。MainクラスでScannerから名前を読み取り、DogインスタンスをAnimal型変数に代入してspeak()を呼び出すと、実行時の型であるDogのメソッドが実行されることを確認してください。
仕様
- Animalクラスを作成(Animal.java):
protected String nameフィールドを持つAnimal(String name)コンストラクタでフィールドを初期化speak()メソッドでname + " speaks"を出力
- Dogクラスを作成(Dog.java): Animalを継承
Dog(String name)コンストラクタでsuper(name)を呼ぶspeak()をname + " barks"にオーバーライド
- Mainクラス:
- Scannerで動物の名前を1行読み取る
Animal animal = new Dog(name);としてアップキャストanimal.speak()を呼び出す
入力
動物の名前(1行)
出力形式
{name} barks
入出力例
入力: Buddy
出力: Buddy barks
