编写测试多态性程序。首先编写动物类Animal,成员有:私有的静态种类名字字段kind及公共的get和set方法,公共的呼吸和行走方法及构造方法。然后分别编写继承动物类的鸟类Bird和马类Horse,除定义构造方法外,这些类均重写父类的行走方法。最后编写主类,依次构建各个上转型对象,调用其呼吸和行走等方法,得到不同结果。运行界面如图12-1所示:构造动物类对象==== 请输入数字(1:鸟,2马,其它:结束):1构造一个鸟对象鸟在呼吸...鸟在飞翔... 请输入数字(1:乌,2:马,其它:结束):2构造一个马对象马在呼吸...马在奔跑... 请输入数字(1:鸟,2马,其它:结束):3
时间: 2024-02-20 16:01:17 浏览: 62
以下是多态性程序的实现:
Animal类:
```java
public class Animal {
private static String kind; // 种类名字
public static String getKind() {
return kind;
}
public static void setKind(String kind) {
Animal.kind = kind;
}
public Animal() {
System.out.println("构造动物类对象====");
}
public void breathe() {
System.out.println(getKind() + "在呼吸...");
}
public void move() {
System.out.println(getKind() + "在行走...");
}
}
```
Bird类:
```java
public class Bird extends Animal {
public Bird() {
setKind("鸟");
System.out.println("构造一个鸟对象");
}
@Override
public void move() {
System.out.println(getKind() + "在飞翔...");
}
}
```
Horse类:
```java
public class Horse extends Animal {
public Horse() {
setKind("马");
System.out.println("构造一个马对象");
}
@Override
public void move() {
System.out.println(getKind() + "在奔跑...");
}
}
```
主类:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Animal animal;
int input = 0;
while (true) {
System.out.print("请输入数字(1:鸟,2:马,其它:结束):");
input = scanner.nextInt();
if (input == 1) {
animal = new Bird();
} else if (input == 2) {
animal = new Horse();
} else {
break;
}
animal.breathe();
animal.move();
}
}
}
```
运行结果如下:
```
请输入数字(1:鸟,2:马,其它:结束):1
构造动物类对象====
构造一个鸟对象
鸟在呼吸...
鸟在飞翔...
请输入数字(1:鸟,2:马,其它:结束):2
构造动物类对象====
构造一个马对象
马在呼吸...
马在奔跑...
请输入数字(1:鸟,2:马,其它:结束):3
```
阅读全文