问题:设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声

要求如下:

编写抽象类Animal

Animal抽象类有2个抽象方法cry()和getAnimaName(),即要求各种具体的动物给出自己的叫声和种类名称。

编写模拟器类Simulator

该类有一个playSound(Animal animal)方法,该方法的参数是Animal类型。即参数animal可以调用Animal的子类重写的cry()方法播放具体动物的声音、调用子类重写的getAnimalName()方法显示动物种类的名称。

编写Animal类的子类:Dog,Cat类

解答过程:

画出抽象类的UML图如下:
Java练习 | 设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声(附代码)-编程之家

代码如下:

Animal.java

package moniqi;public interface Animal {void cry();String getAnimalName();
}

Dog.java

package moniqi;public class Dog implements Animal {public void cry() {System.out.println("汪汪汪");}public String getAnimalName(){return "狗";}
}

Cat.java

package moniqi;public class Cat implements Animal{public void cry() {System.out.println("喵喵喵");}public String getAnimalName() {return "猫";}
}

Simulator.java

package moniqi;public class Simulator {public void playSound(Animal animal) {System.out.println(animal.getAnimalName()+"的叫声是:");animal.cry();}
}

Text.java

package moniqi;public class Text {public static void main(String[] args) {Simulator simulator=new Simulator();simulator.playSound(new Dog());simulator.playSound(new Cat());}
}

运行结果:
Java练习 | 设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声(附代码)-编程之家