发布时间2025-03-18 15:04
在Java中,多态是一种允许不同类的对象对同一接口作出响应的能力。以下是一个简单的例子,展示了如何使用多态来养猫和狗。
首先,我们定义一个动物接口(Animal
)和一个继承自该接口的Cat
和Dog
类。然后,我们创建一个PetShelter
类,它包含一个Animal
类型的数组,用于养猫和狗。我们还可以定义一个feed
方法,该方法通过多态调用动物的makeSound
方法。
// 定义动物接口
interface Animal {
void makeSound();
}
// 定义猫类
class Cat implements Animal {
public void makeSound() {
System.out.println("喵喵");
}
}
// 定义狗类
class Dog implements Animal {
public void makeSound() {
System.out.println("汪汪");
}
}
// 定义宠物收容所类
class PetShelter {
Animal[] pets;
public PetShelter(int size) {
pets = new Animal[size];
}
// 添加宠物
public void addPet(Animal pet) {
for (int i = 0; i < pets.length; i++) {
if (pets[i] == null) {
pets[i] = pet;
break;
}
}
}
// 喂养宠物
public void feed() {
for (Animal pet : pets) {
if (pet != null) {
pet.makeSound(); // 多态调用
}
}
}
}
// 主类
public class Main {
public static void main(String[] args) {
// 创建宠物收容所
PetShelter shelter = new PetShelter(5);
// 添加猫和狗
shelter.addPet(new Cat());
shelter.addPet(new Dog());
// 喂养宠物
shelter.feed();
}
}
在上面的代码中,我们定义了一个Animal
接口和一个实现该接口的Cat
和Dog
类。PetShelter
类包含一个Animal
类型的数组,用于存储宠物。feed
方法通过多态调用动物的makeSound
方法,从而实现对不同类型的动物进行相同的操作。
当运行main
方法时,它会创建一个PetShelter
实例,添加一只猫和一只狗,然后调用feed
方法来喂养它们。由于Animal
是Cat
和Dog
的父接口,我们可以将Cat
和Dog
对象赋值给Animal
类型的变量,这展示了多态的特性。
更多热门问答