什么是多态性请举例说明。
时间: 2024-09-08 08:03:47 浏览: 41
运行时实现Java的多态性
多态性是指不同类型的对象对同一消息(方法调用)作出响应的能力。简单来说,就是同一种行为可以根据对象的不同形态表现出不同的效果。下面通过一个简单的例子来说明:
假设我们有一个动物王国,有两个类:`Dog` 和 `Cat`,它们都实现了`Animal`接口,这个接口有一个共同的行为`makeSound()`。那么:
```java
interface Animal {
void makeSound();
}
class Dog implements Animal {
public void makeSound() {
System.out.println("Woof!");
}
}
class Cat implements Animal {
public void makeSound() {
System.out.println("Meow!");
}
}
// 然后,在一个函数里,我们可以创建一个Animal类型的数组,包含Dog和Cat实例
Animal[] animals = new Animal[2];
animals[0] = new Dog(); // 动物1是一个Dog
animals[1] = new Cat(); // 动物2是一个Cat
for (Animal animal : animals) {
animal.makeSound(); // 这里虽然是统一调用makeSound,但会根据实际的对象类型打印出不同的声音
}
```
在这个例子中,虽然`animal.makeSound()`调用的是同一个方法,但由于对象的具体类型不同,结果却是“Woof!”或“Meow!”,这就是多态性的体现。
阅读全文