1. 程式人生 > 實用技巧 >java-抽象類、介面等實際應用 (酒店小案例)

java-抽象類、介面等實際應用 (酒店小案例)

1、酒店小案例

某五星級酒店,資金雄厚,要招聘多名員工(經理、廚師、服務員)。入職的員工需要記錄個人資訊(姓名、工號、經理特有獎金屬性)。他們都有自己的工作要做。

本案例要完成如下需求:

l 獲取酒店幸運員工;

l 酒店開設VIP服務,酒店的廚師與服務員可以提供VIP服務。(廚師做菜加量、服務員給顧客倒酒)。

l 編寫測試類

n 向酒店中,增加多名員工(其中包含1名經理,1名廚師、2名服務員);

n 呼叫酒店員工的工作功能

n 呼叫酒店員工的VIP服務功能

1、建立員工類

//員工姓名 編號 工作一系列共性 寫在大類裡
public abstract class Employee {
    
private String name;//有私有就必須寫getset方法 private int id; // 開發標準 必須寫空參和全參構造器 public Employee() { } public Employee(String name, int id) { this.name = name; this.id = id; } public abstract void work(); public String getName() { return name; }
public void setName(String name) { this.name = name; } public int getId() { return id; } public void setId(int id) { this.id = id; } }

2、建立特殊VIP服務介面

//特殊服務介面
public interface Service {
    public abstract void VIPservice();
}

3、建立廚師類

//廚師類
public class Cooker extends
Employee implements Service { public Cooker() { } public Cooker(String name, int id) { super(name, id); } @Override public void work() { System.out.println("我是廚師,我的工作是煮菜。");// 重寫工作方法 } public void VIPservice() { System.out.println("我的VIP服務是做菜加量!");// 實現VIP介面方法 } }

4、建立服務員類

//服務員類
public class Waiter extends Employee implements Service {
    public Waiter()
    {
    }

    public Waiter(String name, int id)
    {
        super(name, id);
    }

    @Override
    public void work() {
        System.out.println("我是服務員,我的工作是端菜。");
    }

    public void VIPservice() {
        System.out.println("我的VIP服務是花式倒酒服務!");
    }
}

5、建立經理類

//經理類
public class Manager extends Employee {
    private int bonus;

    public Manager()
    {
    }

    public Manager(String name, int id, int bonus)
    {
        super(name, id);
        this.bonus = bonus;
    }

    @Override
    public void work() {
        System.out.println("我是經理,我的工作是是管理廚師和服務員!");

    }

    public void setBonus(int bonus) {
        this.bonus = bonus;
    }

    public int getBonus() {
        return this.bonus;
    }
}

6、建立測試類

public class Test {
    public static void main(String[] args) {
        // 招人入酒店
        Cooker c1 = new Cooker("廚師1", 1001);
        Cooker c2 = new Cooker("廚師2", 1002);
        Cooker c3 = new Cooker("廚師3", 1003);
        Cooker c4 = new Cooker("廚師4", 1004);
        Waiter w1 = new Waiter("服務員1", 1101);
        Waiter w2 = new Waiter("服務員2", 1102);
        Waiter w3 = new Waiter("服務員3", 1103);
        Manager m1 = new Manager("經理", 1201, 10000);
        // 呼叫廚師的工作的VIP服務
        c1.work();
        c1.VIPservice();
        // 呼叫服務員的工作的VIP服務
        w1.work();
        w1.VIPservice();
        // 呼叫經理的工作
        m1.work();
        // 將名字放入list列表進行隨機抽獎
        ArrayList<String> list = new ArrayList<String>();
        list.add(c1.getName());
        list.add(c2.getName());
        list.add(c3.getName());
        list.add(c4.getName());
        list.add(w1.getName());
        list.add(w2.getName());
        list.add(w3.getName());
        list.add(m1.getName());
        int index = new Random().nextInt(list.size());
        System.out.println("幸運兒是名字為" + list.get(index) + "的員工!恭喜你!");
    }
}

7、結果