public class Application {
public static void main(String[] args) {
Simulator simulator = new Simulator();
simulator.playSound(new Dog());
simulator.playSound(new Cat());
}
}
public abstract class Animal {
abstract void cry();
abstract String getAnimalName();
}
public class Cat extends Animal{
void cry(){
System.out.println("喵喵喵");
}
String getAnimalName(){
return "咪呜";
}
}
public class Dog extends Animal{
void cry(){
System.out.println("汪汪汪");
}
String getAnimalName(){
return "旺财";
}
}
public class Simulator {
void playSound(Animal animal){
System.out.println(animal.getAnimalName()+"的叫声:");
animal.cry();
}
}