多态父类最为方法返回值实现多态
时间: 2024-06-07 11:12:23 浏览: 110
多态是面向对象编程中的一个重要概念,它允许我们在不同的子类对象上执行相同的方法,而得到不同的结果。在实现多态时,父类可以作为方法的返回值类型,这样可以实现对不同子类对象的统一处理。
例如,假设有一个动物类 Animal,它有一个名为 makeSound 的方法。然后有两个子类 Cat 和 Dog,它们分别重写了 makeSound 方法。
```java
public class Animal {
public void makeSound() {
System.out.println("动物发出声音");
}
}
public class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("猫发出喵喵声");
}
}
public class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("狗发出汪汪声");
}
}
```
现在,我们可以定义一个方法,其返回值类型为 Animal 类型,但实际返回的可以是 Cat 或 Dog 的实例。这样,调用该方法时,可以根据实际对象的类型执行对应的方法。
```java
public Animal getRandomAnimal() {
Random random = new Random();
if (random.nextBoolean()) {
return new Cat();
} else {
return new Dog();
}
}
```
当我们调用 getRandomAnimal 方法时,可以通过 Animal 类型接收返回值,并调用 makeSound 方法:
```java
Animal animal = getRandomAnimal();
animal.makeSound(); // 根据实际对象的类型执行对应的方法
```
这样就实现了多态,通过父类作为方法的返回值类型,可以实现对子类对象的统一处理。
阅读全文