热门问答

java多态养猫狗

发布时间2025-03-18 15:04

在Java中,多态是一种允许不同类的对象对同一接口作出响应的能力。以下是一个简单的例子,展示了如何使用多态来养猫和狗。

首先,我们定义一个动物接口(Animal)和一个继承自该接口的CatDog类。然后,我们创建一个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接口和一个实现该接口的CatDog类。PetShelter类包含一个Animal类型的数组,用于存储宠物。feed方法通过多态调用动物的makeSound方法,从而实现对不同类型的动物进行相同的操作。

当运行main方法时,它会创建一个PetShelter实例,添加一只猫和一只狗,然后调用feed方法来喂养它们。由于AnimalCatDog的父接口,我们可以将CatDog对象赋值给Animal类型的变量,这展示了多态的特性。