java-抽象類、介面等實際應用 (酒店小案例)
阿新 • • 發佈:2020-07-16
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 extendsEmployee 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、結果