java编写动物世界的继承关系代码。动物(Animal)包括山羊(Goat)和狼(Wolf),它们吃(eat)的行为不同,山羊吃草,狼吃肉,但走路(walk)的行为是一致的。通过继承实现以上需求,并编写AnimalTest测试类进行测试。字,交换两个数的值
时间: 2024-11-09 20:23:12 浏览: 49
在Java中,我们可以创建一个名为`Animal`的基类,然后分别创建`Goat`和`Wolf`作为子类。这里是一个简单的示例:
```java
// 定义基类 Animal
class Animal {
protected String diet; // 饮食习惯
public void eat(String food) {
System.out.println("This animal eats " + food);
}
// 共享行为方法,所有动物都会走
public void walk() {
System.out.println("The animal is walking.");
}
}
// 山羊子类 Goat
class Goat extends Animal {
@Override
public void eat(String food) {
super.eat("grass");
System.out.println("Goat is eating grass.");
}
}
// 狼子类 Wolf
class Wolf extends Animal {
@Override
public void eat(String food) {
super.eat("meat");
System.out.println("Wolf is eating meat.");
}
}
// 测试类 AnimalTest
public class AnimalTest {
public static void main(String[] args) {
// 创建并测试山羊
Goat goat = new Goat();
goat.walk(); // 所有动物都能走
goat.eat("grain"); // 应该显示错误,因为goat只能吃草
// 创建并测试狼
Wolf wolf = new Wolf();
wolf.walk(); // 所有动物都能走
wolf.eat("bone"); // 应该正常显示狼吃肉
// 显示每个动物的饮食习惯
System.out.println(goat.diet); // 输出: grass
System.out.println(wolf.diet); // 输出: meat
}
}
```
在这个例子中,`Animal`类定义了基本的吃和走的行为,而`Goat`和`Wolf`子类分别覆盖了`eat`方法以适应各自的食物。注意,在`AnimalTest`中尝试给山羊喂食非草类食物会显示错误,这是为了演示继承关系的限制。
阅读全文