做网站的税是多少,wordpress 主题next,山东世界500强企业,网页设计教程网站题目#xff1a; 设计一个“动物模拟器”#xff0c;希望模拟器可以模拟许多动物的叫声和行为#xff0c;要求如下#xff1a; 编写接口Animal#xff0c;该接口有两个抽象方法cry()和getAnimalName()#xff0c;即要求实现该接口的各种具体的动物类给出自己的叫声和种类…题目 设计一个“动物模拟器”希望模拟器可以模拟许多动物的叫声和行为要求如下 编写接口Animal该接口有两个抽象方法cry()和getAnimalName()即要求实现该接口的各种具体的动物类给出自己的叫声和种类名称。 编写模拟器类Simulator该类实现了sound(Animal animal)方法和display(Animal animal)方法其中sound(Animal animal)方法的参数是Animal类型即参数animal可以调用实现Animal接口类重写的cry()方法播放具体动物的声音调用重写的getAnimalName()方法显示动物种类的名称。display(Animal animal)方法的参数是Animal类型根据传入的参数模拟动物的各种行为小猫爬树小狗啃骨头等。 编写实现Animal接口的Dog类和Cat类。定义一个小猫类Cat该类实现了Animal接口并实现了cry()方法当调用cry()方法时打印“小猫喵喵叫”该类自定义了climbTree()方法当调用此方法时打印“小猫爬树”。定义一个小狗类Dog该类也继承了Animal类并实现了cry()方法当调用cry()方法时打印“小狗汪汪叫”该类自定义了pickBone()方法当调用此方法时打印“小狗啃骨头”。编写测试类输出实验结果。
算法思路 1. 定义Animal接口包含两个方法cry()和getAnimalName()。这两个方法分别用于输出动物的叫声和获取动物的名字。 2. 定义Cat类实现Animal接口重写cry()和getAnimalName()方法。在cry()方法中输出“喵喵喵~”在getAnimalName()方法中返回“小猫”。同时定义了一个静态方法climbTree()用于输出“小猫爬树”。 3. 定义Dog类实现Animal接口重写cry()和getAnimalName()方法。在cry()方法中输出“汪汪汪~”在getAnimalName()方法中返回“小狗”。同时定义了一个静态方法pickBone()用于输出“小狗啃骨头”。 4. 定义Simulator类包含两个方法sound()和display()。 5. 在sound()方法中接收一个Animal类型的参数输出动物的名字和叫声。首先调用getAnimalName()方法获取动物的名字然后调用cry()方法输出动物的叫声。 6. 在display()方法中接收一个Animal类型的参数根据动物的类型执行相应的行为。如果传入的动物是Cat类型则调用Cat类的climbTree()方法输出“小猫爬树”如果传入的动物是Dog类型则调用Dog类的pickBone()方法输出“小狗啃骨头”。 7. 在Main类的main()方法中创建Simulator对象调用sound()和display()方法模拟猫和狗的行为。首先创建一个Cat对象和一个Dog对象然后分别调用Simulator对象的sound()和display()方法输出猫和狗的名字、叫声以及相应的行为。
源代码
package Question8;
// 定义一个Animal接口包含两个方法cry()和getAnimalName()
public interface Animal {void cry(); // 叫声方法String getAnimalName() ; // 获取动物名字方法
}package Question8;
// 定义一个Cat类实现Animal接口
public class Cat implements Animal{Overridepublic void cry() {System.out.println(喵喵喵~); // 输出猫的叫声}Overridepublic String getAnimalName() {return 小猫 ; // 返回猫的名字}public static void climbTree(){System.out.println(小猫爬树); // 输出猫爬树的行为}}package Question8;
// 定义一个Dog类实现Animal接口
public class Dog implements Animal {Overridepublic void cry() {System.out.println(汪汪汪~); // 输出狗的叫声}Overridepublic String getAnimalName() {return 小狗 ; // 返回狗的名字}public static void pickBone(){System.out.println(小狗啃骨头); // 输出狗啃骨头的行为}
}package Question8;
// 定义一个Simulator类用于模拟动物的行为
public class Simulator{public void sound(Animal animal){System.out.print(animal.getAnimalName()); // 输出动物的名字animal.cry(); // 调用动物的叫声方法}public void display(Animal animal){if(animal instanceof Cat) // 如果传入的动物是猫{Cat cat(Cat)animal; // 将animal强制转换为Cat类型cat.climbTree(); // 调用猫的爬树方法}else if(animal instanceof Dog) // 如果传入的动物是狗{Dog dog(Dog)animal; // 将animal强制转换为Dog类型dog.pickBone(); // 调用狗啃骨头方法}}
}package Question8;
// 定义一个Main类包含main方法作为程序入口
public class Main {public static void main(String[] args) {Simulator simulatornew Simulator(); // 创建一个Simulator对象simulator.sound(new Cat()); // 调用sound方法传入一个Cat对象输出猫的名字和叫声simulator.display(new Cat()); // 调用display方法传入一个Cat对象执行猫的爬树行为System.out.println(------------); // 输出分隔线simulator.sound(new Dog()); // 调用sound方法传入一个Dog对象输出狗的名字和叫声simulator.display(new Dog()); // 调用display方法传入一个Dog对象执行狗啃骨头行为System.out.println(------------); // 输出分隔线}
}运行结果 注 instanceof是用于检查一个对象是否属于某个类或接口的实例。在这个例子中animal instanceof Cat表示检查animal对象是否是Cat类的实例如果是则执行大括号内的代码。同样animal instanceof Dog表示检查animal对象是否是Dog类的实例。