一、案例介绍 点击此处返回总目录
二、分析
三、代码实现
一、案例介绍
某五星级酒店,资金雄厚,要招聘多名员工(经理、厨师、服务员)。入职的员工需要记录个人信息(姓名、工号、经理特有奖金属性)。他们都有自己的工作要做。
本案例要完成如下需求:
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();
}
}
|
|
标签:酒店,name,void,id,案例,VIP,星级,public,String
来源: https://blog.csdn.net/pengchengliu/article/details/88077050