做一个动物叫声的模拟器:
1.需要几个动物的叫声模拟就写几个动物的类,这里写的是Cat类和Dog类
Dog类;
public class Dog extends Animal{ //继承Animal类
void cry(){ //输出狗狗叫声的方法
System.out.println("汪汪汪!");
}
String getAnimalName() { //得到动物类型的方法
return "Dog: ";
}
}
Cat类:
public class Cat extends Animal{
void cry(){
System.out.println("喵喵喵!");
}
String getAnimalName(){
return "Cat: ";
}
}
2.Animal类:
public abstract class Animal { //定义抽象类
abstract void cry(); //两个抽象方法,需要在子类Dog和Cat中进行重写
abstract String getAnimalName();
}
3.Simulator类:
public class Simulator {
void playSound(Animal animal){ //模拟器中的方法,输出动物的类型以及他们的叫声
System.out.print(animal.getAnimalName());
animal.cry();
}
}
4.Application类,用来测试程序:
public class Application {
public static void main(String[] args) {
Simulator simulator = new Simulator();
Animal animal = new Dog(); //向上转型,用Animal创建了一个Dog类型的对象,父类对象变量指向子类变量
simulator.playSound(animal);//执行模拟器中的方法
simulator.playSound(new Cat());//运行中创建了一个Cat类型的
}
}
测试结果: