Animal.java
public abstract class Animal {
public abstract void cry();
public abstract String getAnimalName();
}
Simulator.java
public class Simulator {
void PlaySound(Animal animal) {
animal.cry();
System.out.println(animal.getAnimalName());
}
}
Dog.java
public class Dog extends Animal {
@Override
public void cry() {
System.out.println("汪汪汪!");
}
@Override
public String getAnimalName() {
return "dog";
}
}
Cat.java
public class Cat extends Animal {
@Override
public void cry() {
System.out.println("喵喵喵!");
}
@Override
public String getAnimalName() {
return "car";
}
}
Application.java
public class Application {
public static void main(String[] args) {
Simulator simulator=new Simulator();
simulator.PlaySound(new Dog());
simulator.PlaySound(new Cat());
}
}
运行结果:
汪汪汪!
dog
喵喵喵!
car