java多态经典案例讲解
时间: 2024-05-15 20:11:45 浏览: 111
Java中多态是一种重要的面向对象编程特性,它允许一个对象以多种不同的方式工作。下面介绍一个经典的Java多态案例——“动物园”。
假设有一个“动物园”类,里面有一个“动物”类,还有“狗”和“猫”两个子类,代码如下:
```java
class Zoo {
public void play(Animal animal) {
animal.shout();
}
}
class Animal {
public void shout() {
System.out.println("动物叫!");
}
}
class Dog extends Animal {
public void shout() {
System.out.println("汪汪汪!");
}
}
class Cat extends Animal {
public void shout() {
System.out.println("喵喵喵!");
}
}
```
在“动物园”类中有一个play方法,它接收一个“动物”类对象作为参数,然后调用这个对象的shout方法。在“狗”和“猫”两个子类中分别重写了shout方法,实现了不同的叫声。
这时候我们可以创建一个“动物园”对象,然后分别将“狗”和“猫”对象传递给play方法进行测试。代码如下:
```java
public class Main {
public static void main(String[] args) {
Zoo zoo = new Zoo();
Animal dog = new Dog();
Animal cat = new Cat();
zoo.play(dog);
zoo.play(cat);
}
}
```
运行结果如下:
```
汪汪汪!
喵喵喵!
```
通过这个案例,我们可以看到,在“动物园”类中,play方法接收一个“动物”类对象作为参数,而在实际测试中我们传递的是“狗”和“猫”对象,这就是多态的应用。我们可以看到,即使传递的是不同的对象,调用的都是各自重写的shout方法,实现了不同的叫声。
阅读全文