7-2 动物声音“模拟器”
abstract类和abstract()方法
设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声。要求如下:
(1)编写抽象类Animal
Animal抽象类有2个抽象方法cry()和getAnimaName(),即要求各种具体的动物给出自己的叫声和种类名称。
(2)编写模拟器类Simulator
该类有一个playSound(Animal animal)方法。参数animal可以调用Animal的子类重写的cry()方法播放具体动物的声音、调用子类重写的getAnimalName()方法显示动物种类的名称。
(3)编写Animal类的子类:Dog,Cat类
(4)编写主类
在主类的main方法中包含如下代码:
Simulator simulator = new Simulator();
simulator.playSound(new Dog());
simulator.playSound(new Cat());
输入格式:
无需输入。
输出格式:
与样例一致。
输入样例:
输出样例:
现在播放狗的声音:汪汪...汪汪现在播放猫的声音:喵喵...喵喵
代码实现:
abstract class Animal{ public abstract void cry(); public abstract String getAnimalName();}class Simulator{ public void playSound(Animal animal){ System.out.print("现在播放"+animal.getAnimalName()+"的声音:"); animal.cry(); }}class Cat extends Animal{ @Override public void cry() { System.out.println("喵喵...喵喵"); } @Override public String getAnimalName() { return "猫"; }}class Dog extends Animal{ @Override public void cry() { System.out.println("汪汪...汪汪"); } @Override public String getAnimalName() { return "狗"; }}public class Main{ public static void main(String[] args) { Simulator simulator = new Simulator(); simulator.playSound(new Dog()); simulator.playSound(new Cat()); }}