用代码详细讲解一下多态
时间: 2023-09-01 22:07:59 浏览: 41
好的,我们可以用一个简单的例子来讲解多态的实现。假设我们有一个Animal类和两个子类Dog和Cat,它们都有一个speak()方法,分别输出不同的声音。下面是代码实现:
```
class Animal {
public void speak() {
System.out.println("Animal is speaking");
}
}
class Dog extends Animal {
public void speak() {
System.out.println("Dog is barking");
}
}
class Cat extends Animal {
public void speak() {
System.out.println("Cat is meowing");
}
}
public class PolymorphismExample {
public static void main(String[] args) {
Animal animal1 = new Animal();
Animal animal2 = new Dog();
Animal animal3 = new Cat();
animal1.speak();
animal2.speak();
animal3.speak();
}
}
```
在这个例子中,我们首先定义了一个Animal类,其中有一个speak()方法,输出"Animal is speaking"。然后我们定义了两个子类Dog和Cat,它们都重写了speak()方法,分别输出"Dog is barking"和"Cat is meowing"。
在主函数中,我们分别创建了一个Animal对象、一个Dog对象和一个Cat对象。然后我们依次调用它们的speak()方法。由于animal1是Animal类型的对象,所以它调用的是Animal类的speak()方法,输出"Animal is speaking";而animal2和animal3是Dog和Cat类型的对象,所以它们在调用speak()方法时会分别调用Dog和Cat类中的speak()方法,输出"Dog is barking"和"Cat is meowing"。
从上面的例子可以看出,通过继承和方法重写,我们可以实现多态的效果,即同一个方法在不同的对象中表现出不同的行为。这种灵活性和可扩展性可以大大提高代码的复用性和可维护性。