如何在Java中设计一个基类Animal,并从它派生出两个子类Cat和Dog,同时创建一个测试类来检验这些类的功能?
时间: 2024-11-17 13:30:26 浏览: 5
在Java中,你可以通过以下步骤来设计一个基类`Animal`,并从它派生出`Cat`和`Dog`两个子类,然后创建一个测试类来验证它们的功能:
1. **定义基类 Animal**:
```java
public abstract class Animal {
private String name;
public Animal(String name) {
this.name = name;
}
// 定义通用的行为,如吃和睡觉
public abstract void eat();
public void sleep() {
System.out.println(name + " is sleeping.");
}
// 获取名字的方法
public String getName() {
return name;
}
}
```
2. **创建子类 Cat 和 Dog**:
```java
public class Cat extends Animal {
public Cat(String name) {
super(name);
}
@Override
public void eat() {
System.out.println(name + " is eating fish.");
}
}
public class Dog extends Animal {
public Dog(String name) {
super(name);
}
@Override
public void eat() {
System.out.println(name + " is eating dog food.");
}
}
```
3. **测试类 Test**:
```java
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
ArrayList<Animal> animals = new ArrayList<>();
// 创建动物实例
Animal cat = new Cat("Mimi");
Animal dog = new Dog("Buddy");
animals.add(cat);
animals.add(dog);
// 遍历列表,检查动物的基本功能
for (Animal animal : animals) {
animal.sleep(); // 所有动物都能睡眠
animal.eat(); // 根据子类的不同,显示不同的吃的行为
}
}
}
```
在这个例子中,`Test`类创建了一个包含`Cat`和`Dog`的集合,然后通过`Animal`类型的引用调用它们的共通方法和各自特有的`eat()`方法,展示了多态性。
阅读全文