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

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

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

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

新規登録