// 创建Animal基类
class Animal {
protected String name;
public Animal(String name) {
this.name = name;
}
// 基类方法,不具体实现
public String makeSound() {
return "Some generic sound";
}
}
// 创建Dog子类
class Dog extends Animal {
public Dog(String name) {
super(name);
}
// 重写基类方法
public String makeSound() {
return "Woof!";
}
}
// 创建Cat子类
class Cat extends Animal {
public Cat(String name) {
super(name);
}
// 重写基类方法
public String makeSound() {
return "Meow!";
}
}
// 创建实例并调用方法
public class Main {
public static void main(String[] args) {
Dog dog = new Dog("Buddy");
Cat cat = new Cat("Whiskers");
System.out.println(dog.name + ": " + dog.makeSound()); // 输出: Buddy: Woof!
System.out.println(cat.name + ": " + cat.makeSound()); // 输出: Whiskers: Meow!
}
}
在这个示例中,我们创建了一个名为Animal的基类,它有一个名为makeSound的方法,但是这个方法在基类中只是一个占位符,没有具体的实现。然后我们创建了两个子类Dog和Cat,它们分别继承了Animal类,并且重写了makeSound方法。
创建了一个Dog实例和一个Cat实例,并分别调用它们的makeSound方法。这里展示了多态的应用,即不同对象调用相同方法但执行的操作不同。