java创建一个AnimalShelter(动物收容所)类,其中定义一个adopt(接收)方法,该方法接受一个Animal类型的参数。然后创建几个具体的动物类,并让它们继承自一个共同的Animal类。在main方法中,尝试收养不同类型的动物。
时间: 2024-10-20 12:19:03 浏览: 46
在Java中,我们可以首先定义一个`Animal`类作为所有动物的基类,它包含一个通用的行为方法如`makeSound()`。然后创建一些具体的动物类,比如`Dog`, `Cat`, 和 `Bird`,它们都从`Animal`类继承,并可以覆盖`makeSound()`方法来展示各自的特性。
```java
// Animal类,基础的动物类
public abstract class Animal {
private String name;
public Animal(String name) {
this.name = name;
}
// 抽象方法,需要在具体子类中实现
public abstract void makeSound();
// 共享的方法
public void introduce() {
System.out.println("我是" + name);
}
}
// Dog类,继承自Animal
public class Dog extends Animal {
public Dog(String name) {
super(name);
}
@Override
public void makeSound() {
System.out.println(name + "汪汪叫");
}
}
// Cat类,也继承自Animal
public class Cat extends Animal {
public Cat(String name) {
super(name);
}
@Override
public void makeSound() {
System.out.println(name + "喵喵叫");
}
}
// Bird类,同样继承自Animal
public class Bird extends Animal {
public Bird(String name) {
super(name);
}
@Override
public void makeSound() {
System.out.println(name + "啾啾叫");
}
}
// 主函数,演示收养不同类型的动物
public class Main {
public static void main(String[] args) {
AnimalShelter shelter = new AnimalShelter();
// 收养一只狗
shelter.adopt(new Dog("旺财"));
// 收养一只猫
shelter.adopt(new Cat("小花"));
// 收养一只鸟
shelter.adopt(new Bird("小鸟"));
// 在shelter里,虽然都是animal类型,但我们能通过方法调用看到各自的声音
}
}
// AnimalShelter类,用于存放和处理动物
class AnimalShelter {
public void adopt(Animal animal) {
animal.introduce();
animal.makeSound();
System.out.println("已成功收养:" + animal.getName());
}
}
```
阅读全文