分数 10
全屏浏览题目
切换布局
作者 李贝贝
单位 广西科技大学
设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声,要求如下。
(1)编写接口Animal。Animal接口有两个抽象方法 cry()和getAnimalName(),即要求实现该接口的各种具体动物类给出自己的叫声和种类名称。
(2)编写模拟器类Simulator。该类有一个playSound(Animal animal)方法,该方法的参数是Animal类型,即参数 animal可以调用实现Animal接口类重写的 cry()方法播放具体动物的声音,调用重写的getAnimalName()方法显示动物种类的名称。
(3)编写实现Animal接口的Dog类和 Cat类。如下图是Simulator、Animal、Dog、 Cat类的UML图。
裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如: public class Main { public static void main(String[] args) { Simulator simulator = new Simulator(); simulator.playSound(new Dog()); simulator.playSound(new Cat()); } } /* 请给出每个类的定义 (注:请把class前面的public去掉再提交) */
输入样例:
在这里给出一组输入。例如:
输出样例:
在这里给出相应的输出。例如:
狗的叫声是: 汪汪~
猫的叫声是: 喵喵~
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
代码
class Simulator {
Animal animal;
public void playSound(Animal animal){
this.animal = animal;
System.out.printf(animal.getAnimalName()+"的叫声是: ");
animal.cry();
}
}
interface Animal {
void cry();
String getAnimalName();
}
class Dog implements Animal{
@Override
public void cry() {
System.out.println("汪汪~");
}
public String getAnimalName(){
return "狗";
}
}
class Cat implements Animal{
public void cry(){
System.out.println("喵喵~");
}
public String getAnimalName(){
return "猫";
}
}