多态是面向对象编程中的一个重要概念,它允许我们使用相同的接口来表示不同类型的对象。这样,我们可以在运行时根据对象的类型动态地调用不同的方法。这可以替代循环内的if-else语句,使代码更加简洁和可扩展。
以下是一个使用多态替换循环内的if-else语句的示例:
// 定义一个Animal类,包含一个makeSound方法
public abstract class Animal {
public abstract void makeSound();
}
// 定义一个Dog类,继承自Animal类,并实现makeSound方法
public class Dog extends Animal {
public void makeSound() {
System.out.println("汪汪汪");
}
}
// 定义一个Cat类,继承自Animal类,并实现makeSound方法
public class Cat extends Animal {
public void makeSound() {
System.out.println("喵喵喵");
}
}
// 在主函数中,创建一个Animal类型的数组,存储Dog和Cat对象
public class Main {
public static void main(String[] args) {
Animal[] animals = new Animal[2];
animals[0] = new Dog();
animals[1] = new Cat();
// 使用循环遍历数组,调用每个对象的makeSound方法
for (Animal animal : animals) {
animal.makeSound();
}
}
}
在上面的示例中,我们定义了一个Animal类,并使用抽象方法makeSound来表示动物发出声音的行为。然后,我们定义了两个子类Dog和Cat,分别实现了makeSound方法。在主函数中,我们创建了一个Animal类型的数组,存储了Dog和Cat对象。最后,我们使用循环遍历数组,调用每个对象的makeSound方法。由于我们使用了多态,因此在运行时会根据对象的类型动态地调用不同的方法,从而避免了使用循环内的if-else语句。
领取专属 10元无门槛券
手把手带您无忧上云