Java 案例九 员工类系列定义
1题目
某IT公司有多名员工,按照员工负责的工作不同,进行了部门的划分(研发部员工、维护部员工)。研发部根据所需研发的内容不同,又分为JavaEE工程师、Android工程师;维护部根据所需维护的内容不同,又分为网络维护工程师、硬件维护工程师。
公司的每名员工都有他们自己的员工编号、姓名,并要做它们所负责的工作。
- 工作内容
- JavaEE工程师:员工号为xxx的 xxx员工,正在研发淘宝网站
- Android工程师:员工号为xxx的 xxx员工,正在研发淘宝手机客户端软件
- 网络维护工程师:员工号为xxx的 xxx员工,正在检查网络是否畅通
- 硬件维护工程师:员工号为xxx的 xxx员工,正在修复打印机
请根据描述,完成员工体系中所有类的定义,并指定类之间的继承关系。进行XX工程师类的对象创建,完成工作方法的调用。
2案例分析
- 根据上述部门的描述,得出如下的员工体系图
- 根据员工信息的描述,确定每个员工都有员工编号、姓名、要进行工作。则,把这些共同的属性与功能抽取到父类中(员工类),关于工作的内容由具体的工程师来进行指定。
- 工作内容
- JavaEE工程师:员工号为xxx的 xxx员工,正在研发淘宝网站
- Android工程师:员工号为xxx的 xxx员工,正在研发淘宝手机客户端软件
- 网络维护工程师:员工号为xxx的 xxx员工,正在检查网络是否畅通
- 硬件维护工程师:员工号为xxx的 xxx员工,正在修复打印机
- 工作内容
- 创建JavaEE工程师对象,完成工作方法的调用
- 根据员工体系图,完成类的定义
定义员工类(抽象类)
package cn.itcast.demo07;
/*
* 员工类:
* 姓名 ,工号 ,
*/
public abstract class Employee {
private String name;
private String id;
public void setName(String name){
this.name = name;
}
public void setId(String id){
this.id = id;
}
public String getName(){
return name;
}
public String getId(){
return id;
}
public abstract void work();
}
- 定义研发部员工类Developer 继承 员工类Employee
package cn.itcast.demo07; /* * 研发类继承员工类 */ public abstract class Develop extends Employee{ public abstract void work(); }
- 定义维护部员工类Maintainer 继承 员工类Employee
package cn.itcast.demo07; /* * 维护类继承员工类 */ public abstract class Maintainer extends Employee{ public abstract void work(); }
- 定义JavaEE工程师 继承 研发部员工类,重写工作方法
package cn.itcast.demo07; /* * JavaEE工程师 继承 研发部员工类 */ public class JavaEE extends Develop { public void work(){ System.out.println("员工号为"+getId()+"的"+getName()+"员工,正在研发淘宝网"); } }
- 定义Android工程师 继承 研发部员工类,重写工作方法
package cn.itcast.demo07; /* * Android工程师继承develop类 */ public class Android extends Develop{ public void work(){ System.out.println("员工号为"+getId()+"的"+getName()+"员工,正在研发安卓应用"); } }
- 定义Network网络维护工程师 继承 维护部员工类,重写工作方法
package cn.itcast.demo07; /* * network工程师正在维护网络 */ public class Network extends Maintainer { public void work(){ System.out.println("员工号为"+getId()+"的"+getName()+"员工,正在维护网路"); } }
- 定义Hardware硬件维护工程师 继承 维护部员工类,重写工作方法
package cn.itcast.demo07; public class Hardware extends Maintainer{ public void work(){ System.out.println("员工号为"+getId()+"的 "+getName()+" 员工,正在修复打印机"); } }
- 在测试类中,创建JavaEE工程师对象,完成工作方法的调用
package cn.itcast.demo07; public class Test { public static void main(String[] args) { //创建JavaEE工程师员工对象 JavaEE ee = new JavaEE(); //设置该员工的编号 ee.setId("000015"); //设置该员工的姓名 ee.setName("小明"); //调用该员工的工作方法 ee.work(); Android aa = new Android(); aa.setId("000017"); aa.setName("大鹏"); aa.work(); Network nn = new Network(); nn.setId("000016"); nn.setName("大明"); nn.work(); Hardware hh = new Hardware(); hh.setId("000018"); hh.setName("哈哈"); hh.work(); } }
运行结果:
-