问题如下:
设计动物声音模拟器,编写抽象类Animal,模拟器类Simulator,编写Animal子类Dog和Cat类,具体题目如图:
思路:
先写抽象父类Animal,并将cry,getAnimalName方法进行声明,因为父类在abstract里面所以我们不能在里面定义方法,只能进行定义,我们在下面才能将上面的方法进行重写,这是abstract的特性, 我们将父类文件创建好之后,需要创建模拟器Simulator,这个很简单,我们只需要创建一个playSound方法即可,再将父类的信息传输进去,我们在模拟器里面在调用我们生成的父类方法即可,最后我们只需要定义主文件进行调用即可。代码如下:
Animal:
abstract class Animal { abstract void cry(); abstract String getAnimalName(); } class Dog extends Animal{ void cry(){ System.out.println("汪汪"); } String getAnimalName(){ String l = "犬科"; System.out.println(l); return l; } } class Cat extends Animal{ void cry(){ System.out.println("喵喵"); } String getAnimalName(){ String l = "猫科"; System.out.println(l); return l; } }
Simulator:
public class Simulator { void playSound(Animal animal){ animal.cry(); animal.getAnimalName(); } }
Application:
public class Application { public static void main(String[] args) { Simulator simulator = new Simulator(); simulator.playSound(new Dog()); simulator.playSound(new Cat()); } }
运行结果: