Animal.java
public abstract class Animal{
public abstract void cry();
public abstract String getAnimalName();
}
Simulator.java
public class Simulator{
public void playSound(Animal animal){
System.out.printf("动物:"+animal.getAnimalName()+",发出了");
animal.cry();
System.out.println();
}
}
Dog.java
public class Dog extends Animal{
public void cry(){
System.out.println("\"汪汪...汪汪\"的声音。");
}
public String getAnimalName(){
return "哮天犬";
}
}
Cat.java
public class Cat extends Animal{
public void cry(){
System.out.println("\"喵喵...喵喵\"的声音。");
}
public String getAnimalName(){
return "噬元兽";
}
}
Application.java
public class Application{
public static void main(String args[]){
Simulator simulator = new Simulator();
simulator.playSound(new Dog());
simulator.playSound(new Cat());
}
}
测试结果:
动物:哮天犬,发出了"汪汪...汪汪"的声音。
动物:噬元兽,发出了"喵喵...喵喵"的声音。