在Java中表达动态多态性的方法是使用方法重写(Method Overriding)。方法重写是指在子类中重新定义父类中已有的方法,以实现在运行时根据对象类型调用正确版本的方法的能力。
示例代码:
class Animal {
public void makeSound() {
System.out.println("The animal makes a sound");
}
}
class Dog extends Animal {
public void makeSound() {
System.out.println("The dog barks");
}
}
class Cat extends Animal {
public void makeSound() {
System.out.println("The cat meows");
}
}
public class Main {
public static void main(String[] args) {
Animal animal1 = new Animal();
Animal animal2 = new Dog();
Animal animal3 = new Cat();
animal1.makeSound();
animal2.makeSound();
animal3.makeSound();
}
}
在这个示例中,Animal类定义了一个makeSound()方法,而Dog和Cat类重写该方法以分别输出该动物的声音。在Main类中,我们实例化了一个Animal对象,一个Dog对象和一个Cat对象,然后调用它们的makeSound()方法,可以看到,在运行时,正确的版本的makeSound()方法被调用,输出了各自动物的声音。这就是动态多态性的表现。