public abstract class Animal{ abstract void cry(); abstract String getAnimalName(); } class Cat extends Animal{ void cry(){ System.out.println("喵"); } String getAnimalName(){ return "猫"; } } class Dog extends Animal{ void cry(){ System.out.println("汪"); } String getAnimalName(){ return "狗"; } } class Simulator{ Animal a; void playSound(Animal animal){ a = animal; System.out.print(a.getAnimalName()+"叫:"); a.cry(); } } public class Application{ public static void main(String args[]){ Dog dog = new Dog();Cat cat = new Cat(); Simulator simulator = new Simulator(); simulator.playSound(dog); simulator.playSound(cat); } }