设计一个动物声音“模拟器希望模拟器可以模拟许多动物的叫声,要求如下编写抽象类Animal Animal抽象类有两个抽象方法cry0和getAnimalName0,即要求各种具体的动物给出自己的叫声和种类名称。 编写模拟器类Simulator 该类有一个playSound(Animal animal)方法,该方法的参数是Animal类型。即参数animal可以调用Animal的子类重写的cry0方法播放具体动物的声音,调用子类重写的getAnimalName0方法显示动物种类的名称编写Animal类的子类:Dog和Cat类 图5.18是Simulator、Animal、Dog、Cat的UML图 Simulator playSound(Animal );:void Animal cry0evoid BetAnimalName0:String Dog c0ivoi Cat cnrvoid 图5.18 UNL类图+ 编写主类Application( 用户程序) 在主类Application的main方法中至少包含如下代码: Simulator simulator = new Simulator0;simulatorplaySound(new Dog0): simulatorplaySound(new Cat0);
时间: 2023-06-12 21:03:43 浏览: 1238
以下是代码实现:
```
// Animal.java
public abstract class Animal {
public abstract void cry();
public abstract String getAnimalName();
}
// Dog.java
public class Dog extends Animal {
@Override
public void cry() {
System.out.println("汪汪汪");
}
@Override
public String getAnimalName() {
return "狗";
}
}
// Cat.java
public class Cat extends Animal {
@Override
public void cry() {
System.out.println("喵喵喵");
}
@Override
public String getAnimalName() {
return "猫";
}
}
// Simulator.java
public class Simulator {
public void playSound(Animal animal) {
animal.cry();
System.out.println("这是一只" + animal.getAnimalName());
}
}
// Application.java
public class Application {
public static void main(String[] args) {
Simulator simulator = new Simulator();
simulator.playSound(new Dog());
simulator.playSound(new Cat());
}
}
```
运行结果如下:
```
汪汪汪
这是一只狗
喵喵喵
这是一只猫
```
阅读全文