Javaにおける多態性の仕組み

Javaの多態性は、サブクラスのオブジェクトをスーパークラスの参照変数に代入でき、スーパークラスの参照変数からサブクラスのオーバーライドされたメソッドを呼び出せることを指します。

多様化を具体的に実現するステップは以下のとおりである。

  1. 親クラスとそのサブクラスを作成します。
  2. スーパークラスでメソッドを定義し、サブクラスでそのメソッドをオーバーライドできるようにする。
  3. サブクラスのオブジェクトを作成する。
  4. サブクラスのオブジェクトをスーパークラスの参照変数に代入する。
  5. スーパークラスの参照変数から、サブクラスのオーバーライドメソッドを呼び出す。

サンプルコードは以下の通りです。

class Animal {
    public void sound() {
        System.out.println("Animal makes sound");
    }
}

class Cat extends Animal {
    @Override
    public void sound() {
        System.out.println("Cat meows");
    }
}

class Dog extends Animal {
    @Override
    public void sound() {
        System.out.println("Dog barks");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal animal1 = new Cat();
        Animal animal2 = new Dog();

        animal1.sound(); // 输出结果:Cat meows
        animal2.sound(); // 输出结果:Dog barks
    }
}

上記の例では、Animalクラスが親クラス、CatクラスとDogクラスが子クラスです。親クラスAnimalにはsound()メソッドが定義されており、子クラスCatとDogではこのメソッドをそれぞれオーバーライドしています。mainメソッドでは、Catオブジェクトが親クラスAnimalの参照変数animal1に代入され、Dogオブジェクトがanimal2に代入されています。animal1とanimal2からsound()メソッドを呼び出すと、実際には子クラスのオーバーライドされたメソッドが呼び出されます。これが多態性の仕組みです。

bannerAds