Animal类:
public abstract class Animal {
String name;
int sound;
//构造抽象类方法
public abstract void cry();
public abstract String getAnimalName();
public void ccry(){
System.out.println("");
}
String getAnimalNamee(){
System.out.println("我的名字是:"+name);
return name;
}
}
Dog类:
public class Dog extends Animal { //子类继承父类
String name="小白";
//子类重写父类方法
public String getAnimalName() {
System.out.println("我的名字是:"+name);
return name;
}
public void cry() {
System.out.println("汪汪......");
}
}
Cat类:
public class Cat extends Animal {
String name="小咪";
//子类重写父类方法
public String getAnimalName() {
System.out.println("我的名字是:"+name);
return name;
}
public void cry() {
System.out.println("喵猫......");
}
}
Simulator类:
public class Simulator {
public void playSound(Animal animal){//构造Animal类型的参数animal
//调用父类方法
animal.cry();
animal.getAnimalName();
}
}
Application 类:
public class Application {
public static void main(String[] args) {
Simulator simulator=new Simulator ();
Animal animal =new Dog(); //animal 是Dog的上转型对象,调用子类Dog的方法。
Animal animal1 =new Cat();
simulator.playSound(animal);
simulator.playSound(animal1);animal 是Cat的上转型对象,调用子类cat的方法。
}
}
分析:abstract:抽象类,不能把类实例化。
运行结果:
转载自原文链接, 如需删除请联系管理员。
原文链接:设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声。,转载请注明来源!