JAVA编写一个类Animal,描述动物的属性和行为,通过继承Animal类定义 Bird类、Fish类,分别描述鸟类和鱼类的属性和行为,具体要求如下: (1)Animal类定义属性name、color、footNumber,描述动物的名 称、颜色、脚的只数;定义成员方法showInfo0,用于输出动物的属性信 息;定义成员方法move0,用于描述动物如何行走(输出“可以通过飞、 跑、游等方式移动身体”); (2)通过继承Animal定义Bird类,改写父类的move方法(输出“通 过飞来移动身体”),增加一个方法nest0用于描述在哪里筑巢; (3)通过继承Animal定义Fish类,改写父类的move方法(输出“通过 游来移动身体”),增加一个属性length,用于描述鱼的身长,改写父类 的showInfo0方法,除了输出name、color、footN_umber属性,还要输出鱼 的身长。0 (4)编写测试类,分别创建上述3个类的对象,并给对象的所有属性 赋值,调用对象的所有方法
时间: 2023-07-14 18:13:35 浏览: 186
Animal.java:
```java
public class Animal {
private String name;
private String color;
private int footNumber;
public Animal(String name, String color, int footNumber) {
this.name = name;
this.color = color;
this.footNumber = footNumber;
}
public void showInfo() {
System.out.println("名称:" + name);
System.out.println("颜色:" + color);
System.out.println("脚的只数:" + footNumber);
}
public void move() {
System.out.println("可以通过飞、跑、游等方式移动身体");
}
}
```
Bird.java:
```java
public class Bird extends Animal {
public Bird(String name, String color, int footNumber) {
super(name, color, footNumber);
}
@Override
public void move() {
System.out.println("通过飞来移动身体");
}
public void nest() {
System.out.println("在树上筑巢");
}
}
```
Fish.java:
```java
public class Fish extends Animal {
private double length;
public Fish(String name, String color, int footNumber, double length) {
super(name, color, footNumber);
this.length = length;
}
@Override
public void showInfo() {
super.showInfo();
System.out.println("身长:" + length);
}
@Override
public void move() {
System.out.println("通过游来移动身体");
}
}
```
TestAnimal.java:
```java
public class TestAnimal {
public static void main(String[] args) {
Animal animal = new Animal("狗", "黑色", 4);
animal.showInfo();
animal.move();
Bird bird = new Bird("麻雀", "灰色", 2);
bird.showInfo();
bird.move();
bird.nest();
Fish fish = new Fish("金鱼", "红色", 0, 10);
fish.showInfo();
fish.move();
}
}
```
运行TestAnimal.java,输出结果如下:
```
名称:狗
颜色:黑色
脚的只数:4
可以通过飞、跑、游等方式移动身体
名称:麻雀
颜色:灰色
脚的只数:2
通过飞来移动身体
在树上筑巢
名称:金鱼
颜色:红色
脚的只数:0
身长:10.0
通过游来移动身体
```
阅读全文