014-005-001

メソッドオーバーライド:動物の鳴き声

初級

問題説明

メソッドオーバーライド:動物の鳴き声

この問題では: Animalクラス継承したDogクラスとCatクラスを作成し、@Overrideアノテーションを使って親クラスのspeak()メソッドを各子クラスでオーバーライドし、入力で指定された動物の種類に応じた鳴き声を標準出力に表示するプログラムを作成します。

学習目標: @Overrideで親メソッドを子クラスで再定義する

動物を表すAnimalクラスと、それを継承するDog/Catクラスを作ります。親のspeak()メソッドを子クラスでオーバーライドして、それぞれ異なる鳴き声を出力しましょう。

入力

1行目: 動物の数 N(1以上)
次のN行: 動物の種類("dog" または "cat")

出力

各動物の鳴き声を1行ずつ出力します。

  • dog の場合: Dog says: Woof!
  • cat の場合: Cat says: Meow!

具体例

例1: 犬と猫の順番

入力:

2
dog
cat

出力:

Dog says: Woof!
Cat says: Meow!

例2: 猫と犬の順番

入力:

2
cat
dog

出力:

Cat says: Meow!
Dog says: Woof!

オーバーライドの仕組み

  • 親クラスAnimalにspeak()メソッドを定義
  • 子クラスDogで@Overrideを付けてspeak()を再定義
  • 子クラスCatでも同様に再定義
  • 各インスタンスのspeak()を呼ぶと、それぞれの子クラスの実装が実行される

テストケース例

※ 出力例はプログラミングの国際標準に準拠し英語で表示しています

正常系
入力:
1
cat
期待される出力:
Cat says: Meow!
正常系
入力:
3
cat
dog
cat
期待される出力:
Cat says: Meow!
Dog says: Woof!
Cat says: Meow!

あなたの解答

現在のモード: 自分のコード
Animal.java🔒
Dog.java🔒
Cat.java🔒
Solution.java🔒
4/6 ファイル813B
public class Animal {
public void speak() {
// Override this method in subclasses
}
}
0 B / 5 MB

残り 10 回実行可能