编写一个小的程序,其中定义一些接口、类、抽象类,定义它们的成员(字段及方法), 要求使用使用setter/getter, static, final, abstract,@Override等语法要素,并写一个main函数来使用它们。这些类、接口可以是围绕以下选题之一
飞翔世界:来一次飞翔接力(即多个可飞翔的对象依次调用);
动物世界:来一次吃西瓜大赛;
图书馆:模拟一天的借阅过程;
学校:模拟选课过程;
等等
package week4;
public class FlyGame {
public static void main(String[] args) {
Bird bird1 = new Bird();
bird1.setFlyDistance(10);
bird1.setType("dujuan");
Bird bird2 = new Bird();
bird1.setFlyDistance(20);
bird1.setType("bugu");
AirPlane air1 = new AirPlane();
air1.setFlyDistance(1000);
air1.setName("by747");
AirPlane air2 = new AirPlane();
air2.setFlyDistance(2000);
air2.setName("dafeiji");
System.out.println("飞行接力开始");
air1.fly();
bird1.fly();
bird2.fly();
air2.fly();
}
}
interface flyable{
void fly();
}
abstract class animal {
public void eat(){}
public void sleep(){}
}
//鸟类继承动物类,并有飞的能力
class Bird extends animal implements flyable{
private String type;
private double flyDistance;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public double getFlyDistance() {
return flyDistance;
}
public void setFlyDistance(double flyDistance) {
this.flyDistance = flyDistance;
}
public static final int maxFlyDistance=100;
@Override
public void fly() {
System.out.println(type+"起飞");
System.out.println("我飞"+flyDistance+"m");
System.out.println("降落");
}
}
//飞机实现飞行接口
class AirPlane implements flyable{
private String name;
private double flyDistance;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getFlyDistance() {
return flyDistance;
}
public void setFlyDistance(double flyDistance) {
this.flyDistance = flyDistance;
}
@Override
public void fly() {
System.out.println(name+"起飞");
System.out.println("我飞"+flyDistance+"m");
System.out.println("降落");
}
}