Javaでの多態性の実現方法は何ですか?
Javaにおける多態性の実装方法には、以下が含まれます:
- 継承とメソッドのオーバーライドによって、子クラスは親クラスのメソッドをオーバーライドできます。親クラスの参照を介してそのメソッドを呼び出すと、実際には子クラスでオーバーライドされたメソッドが実行されます。
- インターフェースを使用して多態性を実現する際、インターフェースはメソッドの規約を定義し、そのインターフェースを実装するクラスは必要に応じてこれらのメソッドを実装することができます。そして、インターフェースを介してメソッドを呼び出すと、実際には実装クラス内の対応するメソッドが実行されます。
- 同じクラス内で複数のメソッドを定義し、名前は同じでもパラメーターリストが異なる場合、オーバーロードメソッドを実現します。メソッドの呼び出し時には、渡されるパラメーターの型と数に基づいて、どのメソッドを呼び出すかが決まります。
以下はサンプルコードです。
class Animal {
public void sound() {
System.out.println("动物发出声音");
}
}
class Dog extends Animal {
@Override
public void sound() {
System.out.println("狗叫");
}
}
class Cat extends Animal {
@Override
public void sound() {
System.out.println("猫叫");
}
}
public class PolymorphismExample {
public static void main(String[] args) {
Animal animal1 = new Dog();
Animal animal2 = new Cat();
animal1.sound();
animal2.sound();
}
}
結果出力:
狗叫
猫叫
上記の例では、Animalクラスが親クラスであり、DogクラスとCatクラスが子クラスです。それらは両方とも親クラスのsound()メソッドをオーバーライドしています。親クラスの参照を通じてsound()メソッドを呼び出すと、実際には子クラスでオーバーライドされたメソッドが実行されるため、これがポリモーフィズムの表現です。