设计一个动物声音模拟器,希望模拟器可以模拟许多动物的叫声,要求如下: (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 22:39:20 浏览: 208
下面是Java代码实现:
Animal接口:
```
public interface Animal {
void Cry();
String getAnimalName();
}
```
Simulator类:
```
public class Simulator {
public void playSound(Animal animal) {
animal.Cry();
System.out.println("Animal Name: " + animal.getAnimalName());
}
}
```
Dog类:
```
public class Dog implements Animal {
public void Cry() {
System.out.println("Dog barks.");
}
public String getAnimalName() {
return "Dog";
}
}
```
Cat类:
```
public class Cat implements Animal {
public void Cry() {
System.out.println("Cat meows.");
}
public String getAnimalName() {
return "Cat";
}
}
```
主类Application:
```
public class Application {
public static void main(String[] args) {
Simulator simulator = new Simulator();
simulator.playSound(new Dog());
simulator.playSound(new Cat());
}
}
```
运行结果:
```
Dog barks.
Animal Name: Dog
Cat meows.
Animal Name: Cat
```
阅读全文