018 オブジェクト指向の深化(ポリモーフィズムの応用) 008 解答例

// 抽象クラス Animal
abstract class Animal {
    // 抽象メソッド makeSound
    public abstract String makeSound();
}

// Dog クラス
class Dog extends Animal {
    // makeSound メソッドのオーバーライド
    @Override
    public String makeSound() {
        return "Woof! Woof!";
    }
}

// Cat クラス
class Cat extends Animal {
    // makeSound メソッドのオーバーライド
    @Override
    public String makeSound() {
        return "Meow!";
    }
}

// Main クラス
public class Main {
    public static void main(String[] args) {
        // 異なる動物のインスタンスを生成
        Animal dog = new Dog();
        Animal cat = new Cat();

        // 各動物の鳴き声を表示
        System.out.println("Dog Sound: " + dog.makeSound());
        System.out.println("Cat Sound: " + cat.makeSound());
    }
}

このプログラムでは、Animal クラスが抽象クラスとして定義され、DogCat クラスがそれを継承して makeSound メソッドをオーバーライドしています。main メソッドでは、異なる動物のインスタンスを生成し、それぞれの鳴き声を表示しています。

「018 オブジェクト指向の深化」問題集リスト