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做精致的菜
    */
  • 相关阅读:
    函数对象中的prototype属性
    undefined和null的区别
    访问修饰符
    继承
    静态成员和实例成员的区别
    js模拟Trim()方法
    连接池的执行原理
    Javascript中的= =(等于)与= = =(全等于)区别
    数据库中创建约束
    KM算法入门
  • 原文地址:https://www.cnblogs.com/xuyiqing/p/8254334.html
Copyright © 2011-2022 走看看