我将围绕“飞翔世界:来一次飞翔接力”选题,编写一个小程序,包括接口、类、抽象类,并应用setter/getter、static、final、abstract和@Override等语法要素。
1.简要说明
飞翔接力是一个接力比赛,其中不同的飞翔对象依次传递接力棒并飞行。我们将定义Flyable
接口,表示所有可飞翔的对象的共同特性。然后我们将创建几个实现了Flyable
接口的类,例如Eagle
、Butterfly
和Bird
。为了模拟接力过程,我们还将创建一个RelayRace
类,它负责安排飞翔接力赛的顺序。
2.代码实现
// Flyable接口,定义了飞翔的基本特性
interface Flyable {
void fly();
}
// Animal类是一个抽象类,表示所有动物的共同特性
abstract class Animal {
private String name;
public Animal(String name) {
this.name = name;
}
// Getter和Setter方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
// 抽象方法fly(),由子类实现
public abstract void fly();
}
// Eagle类继承自Animal类,并实现Flyable接口
class Eagle extends Animal implements Flyable {
public Eagle(String name) {
super(name);
}
@Override
public void fly() {
System.out.println(getName() + " is flying high in the sky!");
}
}
// Butterfly类继承自Animal类,并实现Flyable接口
class Butterfly extends Animal implements Flyable {
public Butterfly(String name) {
super(name);
}
@Override
public void fly() {
System.out.println(getName() + " is fluttering gracefully!");
}
}
// Bird类继承自Animal类,并实现Flyable接口
class Bird extends Animal implements Flyable {
public Bird(String name) {
super(name);
}
@Override
public void fly() {
System.out.println(getName() + " is soaring in the air!");
}
}
// RelayRace类用于组织飞翔接力
class RelayRace {
private static final int NUM_PARTICIPANTS = 3;
private Flyable[] participants;
public RelayRace(Flyable... participants) {
if (participants.length != NUM_PARTICIPANTS) {
throw new IllegalArgumentException("Relay race requires exactly " + NUM_PARTICIPANTS + " participants.");
}
this.participants = participants;
}
public void startRace() {
for (Flyable participant : participants) {
participant.fly();
}
}
}
public class FlyingRelay {
public static void main(String[] args) {
// 创建飞翔接力赛的参与者
Eagle eagle = new Eagle("Golden Eagle");
Butterfly butterfly = new Butterfly("Blue Butterfly");
Bird bird = new Bird("Red Bird");
// 组织飞翔接力赛
RelayRace relayRace = new RelayRace(eagle, butterfly, bird);
// 开始飞翔接力赛
relayRace.startRace();
}
}
3.结果
当运行FlyingRelay
类的main
函数时,会创建一个RelayRace
对象,该对象包含三个飞翔对象:一只金鹰(Eagle
)、一只蓝蝴蝶(Butterfly
)和一只红鸟(Bird
)。然后调用startRace
方法开始飞翔接力赛。每个飞翔对象将依次调用它们的fly
方法,输出它们飞翔的描述。