014 継承(明示的なスーパークラスのメソッド呼び出し) 031 解答例

class Animal {
    public void makeSound() {
        System.out.println("動物が音を発します");
    }
}

class Cat extends Animal {
    @Override
    public void makeSound() {
        // 親クラスの makeSound メソッドを呼び出す
        super.makeSound();

        // サブクラス独自の音を追加
        System.out.println("猫がにゃーと鳴きます");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal genericAnimal = new Animal();
        Cat myCat = new Cat();

        // Animal クラスの makeSound メソッドを呼び出す
        genericAnimal.makeSound();

        // Cat クラスの makeSound メソッドを呼び出す
        myCat.makeSound();
    }
}

この例では、Cat クラスが Animal クラスを継承しています。そして、Cat クラスでは makeSound メソッドをオーバーライドし、親クラスの makeSound メソッドを呼び出しています。最終的に、Main クラスでそれぞれのメソッドを呼び出しています。

「014 継承」問題集リスト