java:实现一个宠物商店,在宠物商店中可以有多种宠物,试表示此种关系,并要求可以根据宠物的关键字查找到相应的宠物信息
时间: 2024-10-23 22:14:50 浏览: 16
在Java中,我们可以使用类和继承来实现一个简单的宠物商店模型。首先,我们创建一个`Pet`抽象类作为所有宠物的基类,包含一些通用的属性如名称、品种等,以及一个共有的行为,比如描述:
```java
public abstract class Pet {
private String name;
private String species;
public Pet(String name, String species) {
this.name = name;
this.species = species;
}
// 公共方法
public abstract String getDescription();
// 具体方法实现
public String getName() {
return name;
}
public String getSpecies() {
return species;
}
}
// 具体宠物类的示例,如Dog和Cat
class Dog extends Pet {
private int age;
public Dog(String name, String species, int age) {
super(name, species);
this.age = age;
}
@Override
public String getDescription() {
return "这是一只" + name + ",品种是" + species + ", 年龄是" + age + "岁";
}
}
class Cat extends Pet {
private boolean isCute;
public Cat(String name, String species, boolean isCute) {
super(name, species);
this.isCute = isCute;
}
@Override
public String getDescription() {
return "这是一只" + name + ",品种是" + species + (isCute ? ", 很可爱" : "");
}
}
```
然后,我们可以创建一个`PetShop`类,它存储各种宠物并提供查找功能:
```java
import java.util.HashMap;
import java.util.Map;
public class PetShop {
private Map<String, Pet> pets; // 使用关键字(名字)作为键
public PetShop() {
pets = new HashMap<>();
}
// 添加宠物到商店
public void addPet(Pet pet) {
pets.put(pet.getName(), pet);
}
// 根据关键词查找宠物
public String findPet(String keyword) {
if (pets.containsKey(keyword)) {
return pets.get(keyword).getDescription();
} else {
return "找不到匹配的宠物信息。";
}
}
}
```
现在你可以创建一个`PetShop`实例,并添加各种宠物,然后通过关键字查询它们的信息:
```java
public static void main(String[] args) {
PetShop shop = new PetShop();
shop.addPet(new Dog("旺财", "金毛", 5));
shop.addPet(new Cat("喵喵", "短毛猫", true));
System.out.println(shop.findPet("旺财")); // 输出狗的相关信息
System.out.println(shop.findPet("喵喵")); // 输出猫的相关信息
System.out.println(shop.findPet("小花")); // 输出找不到宠物的信息
}
```
阅读全文