• 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、结果

  • 相关阅读:
    【项目 · Wonderland】UML设计
    【项目 · Wonderland】预则立 && 他山之石
    【项目 · Wonderland】需求规格说明书 · 终版
    【项目 · 学生部门互选系统】项目展示
    【项目 · Wonderland】立项报告
    React 封装Form表单组件
    前端算法题解析 《四》
    前端算法题解析 《三》
    前端算法题解析 《二》
    前端算法题解析 《一》
  • 原文地址:https://www.cnblogs.com/BruceKing/p/13322392.html
Copyright © 2020-2023  润新知