• 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做精致的菜
    */
  • 相关阅读:
    zookeeper + dubbo 搭建
    java 测试 powermock 使用
    设计模式(结构型模式) 之 装饰器模式
    设计模式(创建型模式)工厂模式
    设计模式(结构型模式) 之 桥接模式
    django基础(转载)
    Django之ORM学习
    Django之form组件的学习
    Django之中间件学习
    Django之model 详解
  • 原文地址:https://www.cnblogs.com/xuyiqing/p/8254334.html
Copyright © 2020-2023  润新知