zoukankan      html  css  js  c++  java
  • Java学习笔记17(面向对象十:综合案例)

    在面向对象这个专题的最后

    结合前面多篇文章,用到了面向对象的很多方面知识,做了一个简单的案例:

    饭店案例:

    package hotel;
    
    /*
     *   酒店的员工类
     *     员工共同特点:姓名,工号,工作方法
     */
    public class Employee {
        private String name;
        private String id;
    
        // 注意:实际开发中,需要提供给用户两套构造方法
        // 一套空参,一套有参
    
        public Employee() {
        }
    
        public Employee(String name, String id) {
            this.name = name;
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getId() {
            return id;
        }
    
        public void setId(String id) {
            this.id = id;
        }
    }
    package hotel;
    
    /*
     *   酒店的VIP服务
     *     厨师和服务员
     */
    public interface VIP {
        public abstract void services();
    }
    package hotel;
    
    /*
     *  厨师类
     *  继承员工类,实现VIP接口
     */
    public class Chef extends Employee implements VIP {
    
        public Chef() {
            super();
        }
    
        public Chef(String name, String id) {
            super(name, id);
        }
    
        public void work() {
            System.out.println("厨师在炒菜");
        }
    
        public void services() {
            System.out.println("为VIP做精致的菜");
        }
    }
    package hotel;
    
    /*
     *  服务员类:
     *   继承员工类,实现VIP接口
     */
    public class Waiter extends Employee implements VIP {
    
        public Waiter() {
            super();
        }
    
        public Waiter(String name, String id) {
            super(name, id);
        }
    
        public void work() {
            System.out.println("服务员在上菜");
        }
    
        public void services() {
            System.out.println("服务员为VIP特殊服务");
        }
    }
    package hotel;
    
    /*
     *  定义经理类:
     *     继承员工类,没有VIP功能
     *     自己有奖金属性
     */
    public class Manager extends Employee {
    
        public Manager() {
            super();
        }
    
        public Manager(String name, String id, double money) {
            super(name, id);
            this.money = money;
        }
    
        private double money;
    
        public void work() {
            System.out.println("经理在管理酒店");
        }
    
    }
    package hotel;
    
    import javax.swing.text.ChangedCharSetException;
    
    public class Test {
        public static void main(String[] args) {
            //创建一个经理,两个服务员,两个厨师
            Manager m1 = new Manager("张三","经理001",6666.66);
            m1.work();
            Waiter w1 = new Waiter("小明", "服务员001");
            Waiter w2 = new Waiter("小红", "服务员002");
            w1.work();
            w1.services();
            w2.work();
            w2.services();
            Chef c1 = new Chef("李四","厨师001");
            Chef c2 = new Chef("王五","厨师002");
            c1.work();
            c1.services();
            c2.work();
            c2.services();
        }
    }
    /*
    输出:
    经理在管理酒店
    服务员在上菜
    服务员为VIP特殊服务
    服务员在上菜
    服务员为VIP特殊服务
    厨师在炒菜
    为VIP做精致的菜
    厨师在炒菜
    为VIP做精致的菜
    */
  • 相关阅读:
    [Leetcode] generate parentheses 生成括号
    [Leetcode] letter combinations of a phone number 电话号码的字母组合
    MySQL安装出现“不是内部或外部命令,也不是可执行程序”等一系列问题的解决方案
    [Leetcode] sudoku solver 求解数独
    [Leetcode] valid sudoku 有效数独
    jQuery使用(七):事件绑定与取消,及自定事件的实现原理
    前端交互体验核心之事件(一)
    jQuery使用(六):DOM操作之元素包裹、克隆DOM与data的综合应用
    jQuery使用(五):DOM操作之插入和删除元素
    jQuery使用(四):DOM操作之查找兄弟元素和父级元素
  • 原文地址:https://www.cnblogs.com/xuyiqing/p/8254334.html
Copyright © 2011-2022 走看看