// 抽象クラス Animal
abstract class Animal {
// 鳴き声を表す抽象メソッド
public abstract void makeSound();
}
// 具象クラス Dog
class Dog extends Animal {
// 犬の鳴き声を出力するメソッド
@Override
public void makeSound() {
System.out.println("Dog barks: Woof! Woof!");
}
}
// 具象クラス Cat
class Cat extends Animal {
// 猫の鳴き声を出力するメソッド
@Override
public void makeSound() {
System.out.println("Cat meows: Meow! Meow!");
}
}
// メインクラス
public class Main {
public static void main(String[] args) {
// Dog クラスの利用例
Dog myDog = new Dog();
// 犬の鳴き声を呼び出し
myDog.makeSound(); // 出力: Dog barks: Woof! Woof!
// Cat クラスの利用例
Cat myCat = new Cat();
// 猫の鳴き声を呼び出し
myCat.makeSound(); // 出力: Cat meows: Meow! Meow!
}
}
この例では、Animal
クラスが抽象メソッド makeSound()
を宣言しています。それを継承する具象クラス Dog
と Cat
が、それぞれの動物の鳴き声を出力するメソッドを実装しています。Main
クラスで Dog
クラスと Cat
クラスをインスタンス化して、それぞれの makeSound()
メソッドを呼び出すことで、犬と猫の鳴き声が表示されます。
出力結果:
Dog barks: Woof! Woof!
Cat meows: Meow! Meow!
具象クラス Dog
のインスタンスを作成し、makeSound()
メソッドを呼び出した結果、”Dog barks: Woof! Woof!” という文字列が表示されます。同様に、具象クラス Cat
のインスタンスを作成し、makeSound()
メソッドを呼び出した結果、”Cat meows: Meow! Meow!” という文字列が表示されます。