添加主人类,通过多态给宠物喂食
时间: 2024-11-06 10:14:18 浏览: 6
C++中的静态多态和动态多态
在面向对象编程中,你可以创建一个"主人"类和一个"宠物"类。"宠物"类可以是一个抽象基类或接口,它包含一个通用的"吃饭(eat)"的行为方法。然后,具体的宠物种类如"狗(Dog)", "猫(Cat)"等作为"宠物"类的子类,并重写或实现这个"eat"方法,提供各自的吃食物的方式。
例如:
```java
// 主人类
class Owner {
private Pet pet; // 宠物对象
public void feedPet() {
pet.eat(); // 调用宠物的吃东西方法
}
}
// 抽象宠物类或接口
interface Pet {
void eat();
}
// 具体宠物类
class Dog implements Pet {
@Override
public void eat() {
System.out.println("狗狗正在吃狗粮");
}
}
class Cat implements Pet {
@Override
public void eat() {
System.out.println("猫咪正在吃猫粮");
}
}
// 使用示例
public class Main {
public static void main(String[] args) {
Owner owner = new Owner();
Dog dog = new Dog();
Cat cat = new Cat();
owner.pet = dog; // 主人拥有条狗
owner.feedPet(); // 输出: 狗狗正在吃狗粮
owner.pet = cat; // 主人换了一只猫
owner.feedPet(); // 输出: 猫咪正在吃猫粮
}
}
```
在这个例子中,主人通过宠物引用统一调用`feedPet()`方法,由于每个宠物有自己的`eat`实现,所以显示的是各自特定的食物类型。这就是多态的应用,使得代码更加模块化和易于维护。
阅读全文