```java
// 创建动物类作为基类
class Animal {
String name;
public Animal(String name) {
this.name = name;
}
public void speak() {
System.out.println("The animal makes a sound");
}
}
// 创建狗类作为子类
class Dog extends Animal {
public Dog(String name) {
super(name);
}
public void speak() {
System.out.println(name + " says Woof!");
}
}
// 创建猫类作为子类
class Cat extends Animal {
public Cat(String name) {
super(name);
}
public void speak() {
System.out.println(name + " says Meow!");
}
}
// 创建实例并展示多态的应用
public class Main {
public static void main(String[] args) {
Animal dog = new Dog("Buddy");
Animal cat = new Cat("Whiskers");
dog.speak(); // 输出: Buddy says Woof!
cat.speak(); // 输出: Whiskers says Meow!
}
}
```
在上面的示例中,我们创建了一个名为"Animal"的基类,它具有一个名为"speak"的方法。然后,我们创建了"Dog"和"Cat"类作为"Animal"类的子类,并覆盖了"speak"方法以展示不同的行为。最后,我们创建了"Dog"和"Cat"的实例,并调用它们的"speak"方法,展示了多态的应用。