Javaで多態性を実現する方法は何ですか?
Javaにおいて、多態性を実現する方法は、継承とメソッドの上書きによって行われます。具体的な手順は次の通りです:
- 基底クラス(親クラス)を定義する:基底クラスを作成し、1つ以上のメソッドを含め、少なくとも1つのメソッドがサブクラスでオーバーライドされる。
public class Animal {
public void sound() {
System.out.println("动物发出声音");
}
}
- 1つまたは複数のサブクラスを定義する:1つまたは複数のサブクラスを作成し、基底クラスを継承して基底クラスのメソッドをオーバーライドします。
public class Cat extends Animal {
@Override
public void sound() {
System.out.println("猫发出“喵喵”的声音");
}
}
public class Dog extends Animal {
@Override
public void sound() {
System.out.println("狗发出“汪汪”的声音");
}
}
- オブジェクトを作成してメソッドを呼び出す:基本クラスのオブジェクトまたはサブクラスのオブジェクトを作成し、メソッドを呼び出すことによりポリモーフィズムを実現します。
public class Main {
public static void main(String[] args) {
Animal animal1 = new Animal();
Animal animal2 = new Cat();
Animal animal3 = new Dog();
animal1.sound(); // 动物发出声音
animal2.sound(); // 猫发出“喵喵”的声音
animal3.sound(); // 狗发出“汪汪”的声音
}
}
上記のコードでは、Animalという親クラスを使用してanimal1、animal2、animal3という3つのオブジェクトを作成し、それぞれsound()メソッドを呼び出しました。animal1は親クラスのメソッドを呼び出し、animal2とanimal3はそれぞれ子クラスであるCatやDogのオーバーライドメソッドを呼び出しています。これにより多態性が実現されています。