设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声,要求如下。 ·编写抽象类Animal。Animal抽象类有两个抽象方法cry()和getAnimalName(),即要求各种具体的动物给出自己的叫声和种类名称。 ·编写模拟器类 Simulator。该类有一个playSound(Animal animal)方法,该方法的参数是Animal类型。即参数 animal可以调用 Animal 的子类重写的 cry)方法播放具体动物的声音,调用子类重写的getAnimalName()方法显示动物种类的名称。 ·编写 Animal类的子类:Dog和 Cat类
时间: 2024-03-01 12:56:28 浏览: 88
好的,我明白了。以下是可能的实现:
```java
abstract class Animal {
public abstract String cry();
public abstract String getAnimalName();
}
class Dog extends Animal {
public String cry() {
return "汪汪!";
}
public String getAnimalName() {
return "狗";
}
}
class Cat extends Animal {
public String cry() {
return "喵喵!";
}
public String getAnimalName() {
return "猫";
}
}
class Simulator {
public void playSound(Animal animal) {
System.out.println(animal.getAnimalName() + "发出了声音:" + animal.cry());
}
}
class Main {
public static void main(String[] args) {
Simulator simulator = new Simulator();
Animal dog = new Dog();
Animal cat = new Cat();
simulator.playSound(dog); // 输出:狗发出了声音:汪汪!
simulator.playSound(cat); // 输出:猫发出了声音:喵喵!
}
}
```
在这个实现中,`Animal` 是一个抽象类,有两个抽象方法 `cry()` 和 `getAnimalName()`。`Dog` 和 `Cat` 是 `Animal` 的子类,分别实现了这两个方法。`Simulator` 类有一个 `playSound(Animal animal)` 方法,可以接受任何类型的 `Animal` 对象,并调用它们的 `cry()` 和 `getAnimalName()` 方法。在 `Main` 类中,我们创建了一个 `Simulator` 对象,以及两个 `Animal` 对象(分别是 `Dog` 和 `Cat` 的实例),并调用 `playSound` 方法来模拟它们的声音。
阅读全文