动物(Animal)具有行为:吃(eat)、睡觉(sleep);动物包括:兔子(rabbit)、老虎(tiger);这些动物吃的行为各不相同(兔子吃草、老虎吃肉),但睡觉的行为是一致的。请通过继承实现以上需求,并编写测试类AnimalTest进行测试。 用JAVA编写
时间: 2023-09-03 20:24:49 浏览: 320
卡通动物骑士带动画模型:Modular Animal Knights PBR 1.4
### 回答1:
class Animal {
public void eat() {
// eat behavior
}
public void sleep() {
// sleep behavior
}
}
class Rabbit extends Animal {
public void eat() {
// eat grass behavior
}
}
class Tiger extends Animal {
public void eat() {
// eat meat behavior
}
}
public class AnimalTest {
public static void main(String[] args) {
Rabbit rabbit = new Rabbit();
Tiger tiger = new Tiger();
rabbit.eat();
tiger.eat();
rabbit.sleep();
tiger.sleep();
}
}
### 回答2:
首先,我们可以创建一个抽象类Animal,其中包含吃和睡觉的方法。吃方法可以设为抽象方法,由子类继承并根据具体的动物类型进行实现。睡觉方法可以设为普通方法,因为所有动物的睡觉行为都是一致的。
```java
abstract class Animal {
public abstract void eat();
public void sleep() {
System.out.println("动物正在睡觉");
}
}
```
接下来,我们可以创建兔子类和老虎类,分别继承Animal类,并根据具体的需求实现吃方法。
```java
class Rabbit extends Animal {
@Override
public void eat() {
System.out.println("兔子正在吃草");
}
}
class Tiger extends Animal {
@Override
public void eat() {
System.out.println("老虎正在吃肉");
}
}
```
最后,我们可以编写一个AnimalTest测试类,创建兔子和老虎对象,调用吃和睡觉的方法进行测试。
```java
public class AnimalTest {
public static void main(String[] args) {
Rabbit rabbit = new Rabbit();
Tiger tiger = new Tiger();
rabbit.eat();
rabbit.sleep();
tiger.eat();
tiger.sleep();
}
}
```
在上述测试类中,我们创建了一个兔子对象和一个老虎对象,并分别调用它们的吃和睡觉方法进行输出。兔子对象调用eat方法输出"兔子正在吃草",老虎对象调用eat方法输出"老虎正在吃肉"。然后,无论是兔子还是老虎对象,都调用sleep方法输出"动物正在睡觉"。
以上就是使用继承来实现动物的吃和睡觉行为,并通过测试类进行验证的解决方案。
### 回答3:
首先我们可以创建一个名为Animal的父类,其中包含两个方法:eat()和sleep()。在eat()方法中,我们可以将其设置为抽象方法,以便每个子类可以根据自己的需要进行重写。而在sleep()方法中,我们可以将其设置为普通方法,因为所有动物的睡觉行为都是一致的。
```java
public abstract class Animal {
public abstract void eat();
public void sleep() {
System.out.println("动物在睡觉");
}
}
```
接下来,我们可以创建两个子类Rabbit(兔子)和Tiger(老虎),它们分别继承自Animal类,并实现各自的eat()方法。在Rabbit类中,我们重写eat()方法以代表兔子吃草的行为;而在Tiger类中,我们则重写eat()方法以代表老虎吃肉的行为。
```java
public class Rabbit extends Animal {
@Override
public void eat() {
System.out.println("兔子在吃草");
}
}
public class Tiger extends Animal {
@Override
public void eat() {
System.out.println("老虎在吃肉");
}
}
```
最后,我们可以创建一个AnimalTest类用来测试我们的代码。在该类中,我们可以创建兔子和老虎的实例,并分别调用它们的eat()和sleep()方法进行测试。
```java
public class AnimalTest {
public static void main(String[] args) {
Animal rabbit = new Rabbit();
rabbit.eat(); // 输出:兔子在吃草
rabbit.sleep(); // 输出:动物在睡觉
Animal tiger = new Tiger();
tiger.eat(); // 输出:老虎在吃肉
tiger.sleep(); // 输出:动物在睡觉
}
}
```
通过以上的继承实现,我们可以保证各个动物类共享父类中的相同行为(睡觉),并且可以根据需要在各个子类中分别实现吃的行为(兔子吃草、老虎吃肉)。测试类AnimalTest可以用来验证我们的程序是否正确实现了需求。
阅读全文