/*
用抽象與介面組成的交通工具
*/
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
留言列表