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());
}
}