建立一个动物的层次结构,以抽象类 Animal 为根,Cat、Spider 和 Fish 动物类 实现接口 Pet。使用接口和抽象类技术完成。
时间: 2024-10-25 22:14:41 浏览: 47
在Java中,我们可以创建一个基于抽象类和接口的层次结构来表示动物的不同类别。首先,定义一个抽象类`Animal`作为所有动物的共同基础:
```java
// 抽象类 Animal
public abstract class Animal {
protected String name;
public Animal(String name) {
this.name = name;
}
// 公共方法,如生命维持行为
public void eat() {
System.out.println(name + " is eating.");
}
// 定义抽象方法,需要子类实现
public abstract void sound();
}
```
然后,我们为`Cat`, `Spider`, 和 `Fish` 这些特定种类的宠物创建类,并让它们都实现`Pet`接口:
```java
// 接口 Pet
public interface Pet {
void play();
}
// 类 Cat 继承自 Animal 并实现 Pet 接口
public class Cat extends Animal implements Pet {
public Cat(String name) {
super(name);
}
@Override
public void sound() {
System.out.println(name + " says meow.");
}
@Override
public void play() {
System.out.println(name + " is playing with a ball.");
}
}
// 类 Spider 实现 Animal 类,因为它是动物但不是宠物
public class Spider extends Animal {
public Spider(String name) {
super(name);
}
@Override
public void sound() {
System.out.println(name + " makes a web.");
}
}
// 类 Fish 也实现 Animal 类,同样因为它是一个动物,但不是一个宠物
public class Fish extends Animal {
public Fish(String name) {
super(name);
}
@Override
public void sound() {
System.out.println(name + " swims around.");
}
}
```
在这个设计中,`Animal`是一个抽象类,`Cat`、`Spider`和`Fish`都是它的子类。`Pet`接口规定了宠物特有的行为。每个宠物类实现了`sound()`和`play()`方法,分别代表动物的声音和基本活动。`Spider`和`Fish`虽然不是宠物,但也通过继承`Animal`展示了它们的行为。
阅读全文