飞翔接力等

来源:互联网 发布:剑灵saber捏脸数据 编辑:程序博客网 时间:2024/04/30 15:30

互评时一些好程序的记录

编写一个小的程序,其中定义一些接口、类、抽象类,定义它们的成员(字段及方法), 要求使用使用setter/getter, static, final, abstract@Override等语法要素,并写一个main函数来使用它们。这些类、接口可以是围绕以下选题之一

飞翔世界:来一次飞翔接力(即多个可飞翔的对象依次调用);

动物世界:来一次吃西瓜大赛;

图书馆:模拟一天的借阅过程;

学校:模拟选课过程;

等等

要求写个简要说明。

import java.util.*;interface Flyable {    double FLYLENGTH = 100.0;       // 飞翔距离    void takeoff();    void fly();    void land();}abstract class Animal {    private int speed;    private String sex;    public int getSpeed() {        return speed;    }    public void setSpeed(int sp) {        speed = sp;    }    public String getSex() {        return sex;    }    void sayHello() {        System.out.println("Hello");    }    Animal() {}    public Animal(int sp, String s) {        this.speed = sp;        this.sex = s;    }}abstract class Vehicle {    private int speed;    private int price;    public int getSpeed() {        return speed;    }    public void setSpeed(int sp) {        speed = sp;    }    Vehicle() {}    public Vehicle(int speed, int price) {        this.speed = speed;        this.price = price;    }}class Kazi extends Animal implements Flyable {    int age;    @Override    public void takeoff() {        System.out.println("Kazi take off");    }    @Override    public void fly() {        int kazispeed = getSpeed();        System.out.printf("Kazi fly %.2f seconds at a speed of %3d\n", FLYLENGTH / kazispeed, kazispeed);    }    @Override    public void land() {        System.out.println("Kazi land\n");    }    @Override    void sayHello() {        System.out.printf("Kazi: This is sun.\n");    }    void intro() {        System.out.printf("    age: %d, sex: %s\n", age, getSex());    }    Kazi() {        super(100, "no need");        age = 10000;    }}class Bird extends Animal implements Flyable {    @Override    public void takeoff() {        System.out.println("bird take off");    }    @Override    public void fly() {        int birdspeed = getSpeed();        System.out.printf("bird fly %.2f seconds at a speed of %3d\n", FLYLENGTH / birdspeed, birdspeed);    }    @Override    public void land() {        System.out.println("bird land\n");    }}class Plane extends Vehicle implements Flyable {    @Override    public void takeoff() {        System.out.println("plane take off");    }    @Override    public void fly() {        int planespeed = getSpeed();        System.out.printf("plane fly %.2f seconds at a speed of %3d\n", FLYLENGTH / planespeed, planespeed);    }    @Override    public void land() {        System.out.println("plane land\n");    }}public class FeiXiang {    public static void main(String[] args) {        List<Flyable> Anlist = new ArrayList<>();        for (int i=0; i<2; ++i) {            Kazi kazi0 = new Kazi();            kazi0.setSpeed((int)(Math.random()*20));            Anlist.add(kazi0);            Bird bird0 = new Bird();            bird0.setSpeed(5);            Anlist.add(bird0);            Plane plane0 = new Plane();            plane0.setSpeed(20);            Anlist.add(plane0);        }        /* 飞翔接力 */        for (Flyable ani : Anlist) {            if (ani instanceof Kazi) {                ((Kazi) ani).sayHello();                ((Kazi) ani).intro();            }            ani.takeoff();            ani.fly();            ani.land();        }    }}

0 0
原创粉丝点击