4.在某游戏系统中,有猫、狗、猪三种动物。 三者都有吃的行为,建立一个动物类作为他们的父类,但是三种动物吃的行为都不相 同,猫吃老鼠、狗吃骨头、猪吃饲料。此外,在自身的特有行为中,猫可以抓老鼠,狗能看 家护院,猪特别擅长睡觉。其中这些行为在具体实现时,可以输出一句话即可。 (1)建立测试程序1,该程序有一个方法eatfunction( Animal a),根据传递进来的动物的 不同,分别调用他们的吃的行为和特有的行为 (2)建立测试程序2,定义一个ArrayList的链表对象,定义三个对象,分别是猫、狗、 猪,然后放置3个对象到该链表对象。循环该链表,取出每一一个,调用他们的公共行为和他 们各自的行为。 如何用java代码实现
时间: 2023-05-27 07:06:52 浏览: 188
基于Java实现动物换位游戏【100012959】
动物类:
public class Animal {
public void eat() {
System.out.println("动物在吃东西");
}
}
猫类:
public class Cat extends Animal {
public void eat() {
System.out.println("猫在吃老鼠");
}
public void catchMouse() {
System.out.println("猫在抓老鼠");
}
}
狗类:
public class Dog extends Animal {
public void eat() {
System.out.println("狗在吃骨头");
}
public void guard() {
System.out.println("狗在看家护院");
}
}
猪类:
public class Pig extends Animal {
public void eat() {
System.out.println("猪在吃饲料");
}
public void sleep() {
System.out.println("猪在睡觉");
}
}
测试程序1:
public class Test1 {
public static void eatfunction(Animal a) {
a.eat();
if (a instanceof Cat) {
((Cat) a).catchMouse();
} else if (a instanceof Dog) {
((Dog) a).guard();
} else if (a instanceof Pig) {
((Pig) a).sleep();
}
}
public static void main(String[] args) {
Animal a1 = new Cat();
Animal a2 = new Dog();
Animal a3 = new Pig();
eatfunction(a1);
eatfunction(a2);
eatfunction(a3);
}
}
测试程序2:
import java.util.ArrayList;
public class Test2 {
public static void main(String[] args) {
ArrayList<Animal> list = new ArrayList<>();
list.add(new Cat());
list.add(new Dog());
list.add(new Pig());
for (Animal a : list) {
a.eat();
if (a instanceof Cat) {
((Cat) a).catchMouse();
} else if (a instanceof Dog) {
((Dog) a).guard();
} else if (a instanceof Pig) {
((Pig) a).sleep();
}
}
}
}
阅读全文