理解不了Java中的多态?试试这个实例
多态是面向对象编程的一个重要特性,它允许不同类型的对象对同一方法做出不同的响应。
下面是一个简单的例子,我们将创建一个抽象类Animal和两个派生类:Dog和Cat。然后我们会定义一个方法makeSound,在这个方法中我们使用多态来处理不同类型的动物发出的声音。
// 定义抽象类Animal
abstract class Animal {
// 定义一个方法,让所有动物都可以发出声音
public abstract void makeSound();
}
// 创建两个派生类:Dog和Cat
class Dog extends Animal {
@Override
void makeSound() {
System.out.println("Woof!");
}
}
class Cat extends Animal {
@Override
void makeSound() {
System.out.println("Meow!");
}
}
public class Main {
public static void main(String[] args) {
// 创建Dog和Cat对象
Dog dog = new Dog();
Cat cat = new Cat();
// 通过多态调用它们的makeSound方法
dog.makeSound(); // 输出:Woof!
cat.makeSound(); // 输出:Meow!
}
}
在这个例子中,Dog
和Cat
两个派生类对抽象基类Animal
中的makeSound
方法进行了重写。在main
方法中,通过将dog
和cat
赋值给Animal
类型的引用,实现了多态调用它们的makeSound
方法。
还没有评论,来说两句吧...