写一个Java多态实例
时间: 2023-08-04 16:19:18 浏览: 112
下面是一个Java多态实例的示例代码:
```java
class Animal {
public void speak() {
System.out.println("I am an animal");
}
}
class Dog extends Animal {
public void speak() {
System.out.println("I am a dog");
}
}
class Cat extends Animal {
public void speak() {
System.out.println("I am a cat");
}
}
class Cow extends Animal {
public void speak() {
System.out.println("I am a cow");
}
}
public class Main {
public static void main(String[] args) {
Animal animal1 = new Dog();
Animal animal2 = new Cat();
Animal animal3 = new Cow();
animal1.speak(); // 输出 "I am a dog"
animal2.speak(); // 输出 "I am a cat"
animal3.speak(); // 输出 "I am a cow"
}
}
```
在这个示例中,我们定义了一个Animal类,以及它的三个子类:Dog、Cat和Cow。每个子类都重写了Animal类的speak()方法,并输出不同的字符串。我们在主函数中创建了三个Animal类型的对象,并将它们分别赋值为Dog、Cat和Cow类型的对象。
在调用speak()方法时,我们通过Animal类型的引用变量来调用它们,实际上这些引用变量指向的是不同的子类对象。由于Animal类的speak()方法被重写了,所以在调用speak()方法时,会根据实际的对象类型来调用相应的方法,从而实现了多态。即使我们只有一个Animal类型的引用变量,但是它可以指向不同的子类对象,并且调用不同的方法,这就是Java多态的体现。
阅读全文