设计一个动物声音模拟器,希望模拟器可以模拟许多动物的叫声,要求如下: (1)编写接口Animal。Animal接口有两个抽象方法cry()和getAnimalName(),即要求实现该接口的各种动物类给出自己的叫声和种类名称。 (2)编写模拟器类Simulator。该类有一个playSound(Animal animal)方法,该方法的参数是Animal类型,即参数animal可以调用实现Animal接口类重写的cry()方法播放具体动物的声音,调用重写的getAnimalName6)方法显示动物种类的名称。 (3)编写实现Animal接口的Dog类和Cat类。 (4)编写主类Application(用户程序)。
时间: 2024-03-26 17:35:47 浏览: 71
好的,我可以为您解答这个问题。以下是可能的实现:
Animal.java:
```java
public interface Animal {
void cry();
String getAnimalName();
}
```
Simulator.java:
```java
public class Simulator {
public void playSound(Animal animal) {
animal.cry();
System.out.println("This is a " + animal.getAnimalName());
}
}
```
Dog.java:
```java
public class Dog implements Animal {
public void cry() {
System.out.println("汪汪!");
}
public String getAnimalName() {
return "Dog";
}
}
```
Cat.java:
```java
public class Cat implements Animal {
public void cry() {
System.out.println("喵喵!");
}
public String getAnimalName() {
return "Cat";
}
}
```
Application.java:
```java
public class Application {
public static void main(String[] args) {
Simulator simulator = new Simulator();
Animal dog = new Dog();
Animal cat = new Cat();
simulator.playSound(dog);
simulator.playSound(cat);
}
}
```
运行Application.java,输出结果如下:
```
汪汪!
This is a Dog
喵喵!
This is a Cat
```
这个实现中,Animal接口定义了cry()和getAnimalName()两个方法,分别用于播放动物的声音和获取动物的种类名称。Simulator类实现了playSound()方法,该方法接受一个Animal类型的参数,并调用该参数的cry()方法播放声音,再调用该参数的getAnimalName()方法获取种类名称。Dog类和Cat类都实现了Animal接口,分别重写了cry()和getAnimalName()方法,以模拟不同动物的叫声和种类名称。在Application类中,创建了Simulator对象,并分别创建了Dog对象和Cat对象,然后调用Simulator的playSound()方法播放声音并显示种类名称。
阅读全文