设计一个动物声音模拟器,希望模拟器可以模拟许多动物的叫声,要求如下: (1)编写接口 Animal。 Animal接口有两个抽象方法Cry()和getAnimalName(),即要求实现该按口的各种具体动物类给出自己的叫声和种类名称。 (2)编写模拟器类 Simulator。该类有一个playSound(Animal animal) 方法,该方法的参数是 Animal 类型,即参数animnal 可以调用实现 Animal 按口类重写的 cryC)方法播放具体动物的声音,调用重马的 setAnimalName()方法显示动物种类的名称。 (3)编写实现 Animal 接口的 Dog类和 Cet 类。图6.14 是Simulator.Animal. Dog 、Cat 类的 UML 图。 <<interface>> Animal Simulator playSound(Animal):void cry:void getAnimalName:String Cat Dog cry:void cry :void 图6.14 UML 类图 (4)编写主类 Application(用户程序)。在主类 Application 的main 方法中至少包含如下 代码: Simulator simulator = new Simulator (); simulator. playSound(new Dog ()) ; simulator. playSound(new Cat ()) ;
时间: 2023-12-10 08:38:58 浏览: 52
下面是设计的代码实现:
Animal 接口:
```java
public interface Animal {
void cry();
String getAnimalName();
}
```
Dog 类:
```java
public class Dog implements Animal {
private String animalName = "Dog";
@Override
public void cry() {
System.out.println("Wang Wang Wang!");
}
@Override
public String getAnimalName() {
return animalName;
}
}
```
Cat 类:
```java
public class Cat implements Animal {
private String animalName = "Cat";
@Override
public void cry() {
System.out.println("Miao Miao Miao!");
}
@Override
public String getAnimalName() {
return animalName;
}
}
```
Simulator 类:
```java
public class Simulator {
public void playSound(Animal animal) {
System.out.print(animal.getAnimalName() + ": ");
animal.cry();
}
}
```
Application 类:
```java
public class Application {
public static void main(String[] args) {
Simulator simulator = new Simulator();
simulator.playSound(new Dog());
simulator.playSound(new Cat());
}
}
```
运行结果:
```
Dog: Wang Wang Wang!
Cat: Miao Miao Miao!
```