(1) 创建Animal类,它是一个抽象类,是所有动物类的父类。 注意: 声明一个protected整型变量legs,记录动物有几条腿 定义一个protected的构造函数,初始化legs 声明一个抽象的方法eat 声明一个具体的方法walk,打印动物行走的信息(包括它有几条腿) (2) 创建Spider类 注意: Spider类继承Animal类 定义一个默认构造函数,调用父类的构造方法说明所有的蜘蛛有8条腿 实现eat方法 (3) 根据UML类图的描述,创建接口Pet (4) 创建Cat类继承Animal类,并实现Pet接口 注意: 必须包含一个String类型的变量name存储宠物的名字 定义带一个String类型参数的构造函数,初始化动物的名字。该构造函数还必须 调用父类的构造函数指明所有的猫有4条腿 定义另一个不带参数的构造函数,调用带一个String类型参数的构造函数(提示:用this),传入参数为空字符串。 实现Pet接口的所有方法 实现eat方法 (5)创建Fish类继承Animal类。重写Animal类的方法,指明鱼不能行走,没有腿。
时间: 2023-06-19 17:08:27 浏览: 137
(1) 创建Animal类
```java
public abstract class Animal {
protected int legs;
protected Animal(int legs) {
this.legs = legs;
}
public abstract void eat();
public void walk() {
System.out.println("This animal is walking on " + legs + " legs.");
}
}
```
(2) 创建Spider类
```java
public class Spider extends Animal {
public Spider() {
super(8);
}
@Override
public void eat() {
System.out.println("The spider is eating.");
}
}
```
(3) 创建Pet接口
```java
public interface Pet {
void play();
void beFriendly();
void cuddle();
}
```
(4) 创建Cat类
```java
public class Cat extends Animal implements Pet {
private String name;
public Cat(String name) {
super(4);
this.name = name;
}
public Cat() {
this("");
}
@Override
public void eat() {
System.out.println("The cat is eating.");
}
@Override
public void play() {
System.out.println("The cat is playing.");
}
@Override
public void beFriendly() {
System.out.println("The cat is being friendly.");
}
@Override
public void cuddle() {
System.out.println("The cat wants to cuddle.");
}
}
```
(5) 创建Fish类
```java
public class Fish extends Animal {
public Fish() {
super(0);
}
@Override
public void eat() {
System.out.println("The fish is eating.");
}
@Override
public void walk() {
System.out.println("Fish can't walk!");
}
}
```
阅读全文