// 抽象クラス Animal
abstract class Animal {
public abstract void makeSound();
}
// 具象クラス Dog
class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("Woof! Woof!");
}
}
// 具象クラス Cat
class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("Meow! Meow!");
}
}
// メインクラス
public class Main {
public static void main(String[] args) {
// Animal 型の配列を作成
Animal[] animals = new Animal[2];
// Dog インスタンスを配列に格納
animals[0] = new Dog();
// Cat インスタンスを配列に格納
animals[1] = new Cat();
// ポリモーフィズムを使用して異なる種類の動物のサウンドを出力
for (Animal animal : animals) {
animal.makeSound();
}
}
}
このプログラムでは、Animal
抽象クラスを定義し、その中に makeSound
抽象メソッドがあります。Dog
と Cat
クラスはそれぞれ Animal
を拡張して、makeSound
メソッドをオーバーライドしています。Main
クラスでは、Animal
型の配列を作成し、異なる種類の動物のサウンドをポリモーフィズムを使って表示しています。
出力結果:
Woof! Woof!
Meow! Meow!
このプログラムでは、Animal
型の配列 animals
を作成し、その中に Dog
インスタンスと Cat
インスタンスを格納しています。その後、拡張forループを使用して配列内の各要素に対して makeSound
メソッドを呼び出しています。
配列の1番目の要素は Dog
インスタンスであり、makeSound
メソッドが呼び出されると "Woof! Woof!"
が出力されます。配列の2番目の要素は Cat
インスタンスであり、同様に makeSound
メソッドが呼び出されると "Meow! Meow!"
が出力されます。
これがポリモーフィズムの一例です。