定义一个动物类,Animal(成员变量:动物类型type,对象的数量num),编写构造方法,以及一个发声的方法sound(),同时要求实现Animal对象个数的统计。在测试类中测试。
时间: 2024-09-18 13:07:55 浏览: 70
在Java中,我们可以创建一个名为Animal的抽象基类,用于定义所有动物共享的一些属性和行为。首先,我们需要定义一个Animal接口,包含一个类型的字段type和一个计数器字段num。这里我们假设Animal类型是一个枚举,如Cat、Dog等。
```java
// Animal接口
public abstract class Animal {
public enum Type { CAT, DOG }
protected Animal.Type type;
private static int animalCount = 0;
// 构造方法
public Animal(Animal.Type type) {
this.type = type;
animalCount++;
}
// 发声方法
public abstract String sound();
// 动物数量统计方法
public static int getAnimalCount() {
return animalCount;
}
}
```
接下来,我们可以为猫和狗这两个具体的动物类型创建子类并实现sound方法:
```java
// 猫子类
public class Cat extends Animal {
public Cat() {
super(Animal.Type.CAT);
}
@Override
public String sound() {
return "喵";
}
}
// 狗类
public class Dog extends Animal {
public Dog() {
super(Animal.Type.DOG);
}
@Override
public String sound() {
return "汪";
}
}
```
在测试类中,我们可以创建一些Animal对象,并测试它们的功能:
```java
import java.util.Arrays;
public class TestAnimal {
public static void main(String[] args) {
Animal cat1 = new Cat();
Animal dog2 = new Dog();
System.out.println("猫叫声: " + cat1.sound());
System.out.println("狗叫声: " + dog2.sound());
// 测试动物数量统计
System.out.println("当前动物总数: " + Animal.getAnimalCount());
}
}
```
在这个例子中,TestAnimal类会输出每个动物的声音并显示当前动物的总数。注意,这个设计允许用户动态地添加新的动物类型,只要它们实现了Animal接口即可。
阅读全文