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
クラスでそれぞれのメソッドを呼び出しています。