/*

用抽象與介面組成的交通工具 

*/
package hw_03;

import java.util.Scanner;
//交通工具抽象類別
abstract class Transportation {
    public abstract void name();    //名稱
    public abstract void people();      //載客數
    public abstract void speed();       //移動速度
}

//介面A:吃東西
interface A {
    public abstract void eat();
}
//介面B:看電影
interface B {
    public abstract void movie();
}
//介面C:聽音樂
interface C {
    public abstract void music();
}
//介面D:洗手間
interface D {
    public abstract void toilet();
}
//介面E:空姐
interface E {
    public abstract void stewardess();
}

//火車繼承Transportation抽象類別,實現介面A、D
class Train extends Transportation implements A, D {
    int trainPeople = 600;   //火車載客數
    int trainSpeed = 120;       //火車速度
    //覆寫Transportation抽象方法 
    public void name() {
        System.out.println("火車");
    }

    public void people() {
        System.out.println("火車載客數:" + trainPeople + "人");
    }

    public void speed() {
        System.out.println("移動速度:" + trainSpeed + "公里");
    }

    //覆寫介面A、D方法
    public void eat() {
        System.out.println("有賣餐點能吃");
    }

    public void toilet() {
        System.out.println("車廂有洗手間");
    }

    //將要顯示的資料放進show裡
    public void show() {
        //抽象方法 
        name();
        people();
        speed();
        //介面方法
        eat();
        toilet();
    }
}

//計程車繼承Transportation抽象類別 ,實現介面B、C
class Taxi extends Transportation implements B, C {
    //覆寫Transportation抽象方法 
    public void name() {
        System.out.println("計程車");
    }

    public void people() {
        System.out.println("計程車載客人數:4~6人");
    }

    public void speed() {
        System.out.println("移動速度:道路限速");
    }

    //覆寫介面B、C方法
    public void movie() {
        System.out.println("車上電視播放新聞");
    }

    public void music() {
        System.out.println("音響播放警廣交通台");
    }

    //將要顯示的資料放進show裡
    public void show() {
        //抽象方法
        name();
        people();
        speed();
        //介面方法
        movie();
        music();
    }
}

//飛機繼承Transportation抽象類別,實現介面A、D、E
class Aircraft extends Transportation implements A,D,E {
    //覆寫Transportation抽象方法 
    int airPeople = 450;    //載客人數
    int airSpeed = 480;     //移動速度
    public void name() {
        System.out.println("飛機");
    }

    public void people() {
        System.out.println("飛機載客人數:" + airPeople + "人");
    }

    public void speed() {
        System.out.println("移動速度:" + airSpeed + "公里");
    }

    //覆寫介面A、D、E方法
    public void eat() {
        System.out.println("有附餐能吃");
    }

    public void toilet() {
        System.out.println("飛機有洗手間(起飛降落不能使用),限一人使用!");
    }

    public void stewardess() {
        System.out.println("有美麗空服員");
    }

    //將要顯示的資料放進show裡
    public void show() {
        //抽象方法
        name();
        people();
        speed();
        //介面方法
        eat();
        toilet();
        stewardess();
    }
}

public class Hw_03 {

    public static void main(String[] args) {
        //實體化類別物件
        Train train = new Train();
        Taxi taxi = new Taxi();
        Aircraft aircraft = new Aircraft();
        int x = 0;
        Scanner sc = new Scanner(System.in);
        while (x != 2) {
            System.out.println("請輸入要查詢的交通工具種類:1.火車 2.計程車 3.飛機");

            int select = sc.nextInt();
            switch (select) {
                case 1:
                    train.show();
                    break;
                case 2:
                    taxi.show();
                    break;
                case 3:
                    aircraft.show();
                    break;
                default:
                    System.out.println("您輸入的資料不正確!");
                    break;
            }
            System.out.println("1.繼續查詢 2.離開:");
            x = sc.nextInt();
        }
    }
}


執行結果:

請輸入要查詢的交通工具種類:1.火車 2.計程車 3.飛機
1
火車
火車載客數:600人
移動速度:120公里
有火車便當能吃
車廂有洗手間
1.繼續查詢 2.離開:
1
請輸入要查詢的交通工具種類:1.火車 2.計程車 3.飛機
2
計程車
計程車載客人數:4~6人
移動速度:道路限速
車上電視播放新聞
音響播放警廣交通台
1.繼續查詢 2.離開:
1
請輸入要查詢的交通工具種類:1.火車 2.計程車 3.飛機
3
飛機
飛機載客人數:450人
移動速度:480公里
附空中便當
飛機有洗手間(起飛降落不能使用),限一人使用!
有美麗空服員
1.繼續查詢 2.離開:
2

arrow
arrow
    文章標籤
    Java
    全站熱搜
    創作者介紹
    創作者 mingyilai 的頭像
    mingyilai

    mingyilai的部落格

    mingyilai 發表在 痞客邦 留言(0) 人氣()