版权声明:未经同意,严禁转载 https://blog.csdn.net/pengchengliu/article/details/88077050
一、案例介绍 点击此处返回总目录 二、分析
三、代码实现 一、案例介绍 某五星级酒店,资金雄厚,要招聘多名员工(经理、厨师、服务员)。入职的员工需要记录个人信息(姓名、工号、经理特有奖金属性)。他们都有自己的工作要做。 本案例要完成如下需求: 1、酒店开设VIP服务,酒店的厨师与服务员可以提供VIP服务。(厨师做菜加量、服务员给顾客倒酒)。 2、编写测试类 2.1 向酒店中,增加多名员工(其中包含1名经理,1名厨师、2名服务员); 2.2 调用酒店员工的工作功能 2.3 调用酒店员工的VIP服务功能 二、分析 抽象类:员工类(姓名、工号、工作) 接口:服务 三、代码实现: 1.在以后开发过程当中,每个类都要提供两套构造方法,一个是空参数,另一个是满参数的构造方法。调用者用哪个都可以。 2.要写注释。 3.如果有私有成员,必须要提供get,set方法。 //VIP.java
package cn.itcast.demo01; /* * 接口:酒店的VIP服务。 * 只有厨师和服务员提供VIP服务。 */ public interface VIP{ public abstract void service(); } |
//Employee.java
package cn.itcast.demo01; /* * 酒店的员工类 * 定义员工的共性:姓名、工号、工作方法 */ public abstract class Employee{ private String name; private String id; public Employee(){ //必须要提供两套构造函数 } public Employee(String name , String id){ //必须要提供两套构造函数 this.name = name; this.id = id; } public abstract void work(); public void setName(String name){ //有私有成员的时候必须提供get、set方法。 this.name = name; } public String getName(){ return name; } public void setId(String id){ this.id = id; } public String getId(){ return id; } } |
//Cooker.java
package cn.itcast.demo01; /* * 厨师类 * 继承员工类,实现VIP接口 */ public class Cooker extends Employee implements VIP{ public Cooker(){} public Cooker(String name , String id){ super(name,id); } public void work(){ System.out.println("做菜"); } public void service(){ System.out.println("多放菜"); } } |
//Sever.java
package cn.itcast.demo01; /* * 服务员类 * 继承员工类,实现VIP接口 */ public class Server extends Employee implements VIP{ public Server(){} public Server(String name , String id){ super(name,id); } public void work(){ System.out.println("端菜"); } public void service(){ System.out.println("倒酒"); } } |
//Manager.java
package cn.itcast.demo01; /* * 经理类 * 继承员工类 */ public class Manager extends Employee{ private double bonus; public Manager(){ } public Manager(String name , String id, double bonus){ //这么写! super(name,id); this.bonus= bonus; } public void work(){ System.out.println("端菜"); } public double getBonus(){ return bonus; } public void setBonus(double bonus){ this.bonus = bonus; } } |
//Test.java
package cn.itcast.demo01; public class Test{ public static void main(String[] args){ Manager m1 = new Manager("小明","董事会",12222.33); m1.work(); Server s1 = new Server("翠花","服务部001"); Server s2 = new Server("酸菜","服务部002"); s1.work(); s2.service(); Cooker c1 = new Cooker("老干妈","后厨001"); Cooker c2 = new Cooker("老干爹","后厨001"); c1.work(); c2.service(); } } |
|