第九章案例 员工类系列的定义
案例介绍:
某IT公司有多名员工,按照员工负责的工作不同,进行了部门的划分(研发部员工、维护部员工)。研发部根据所需研发的内容不同,又分为JavaEE工程师、Android工程师;维护部根据所需维护的内容不同,又分为网络维护工程师、硬件维护工程师。
公司的每名员工都有他们自己的员工编号、姓名,并要做它们所负责的工作。
工作内容:
JavaEE工程师:员工号为xxx的 xxx员工,正在研发淘宝网站
Android工程师:员工号为xxx的 xxx员工,正在研发淘宝手机客户端软件
网络维护工程师:员工号为xxx的 xxx员工,正在检查网络是否畅通
硬件维护工程师:员工号为xxx的 xxx员工,正在修复打印机
请根据描述,完成员工体系中所有类的定义,并指定类之间的继承关系。进行XX工程师类的对象创建,完成工作方法的调用。
案例分析:
员工体系图:
案例实现代码:
定义员工类(抽象类)
publicabstractclass Employee {
private String id;// 员工编号
private String name;// 员工姓名
public String getId() {
returnid;
}
public voidsetId(String id) {
this.id = id;
}
public String getName() {
returnname;
}
public voidsetName(String name) {
this.name =name;
}
//工作方法(抽象方法)
publicabstractvoid work();
}
定义研发部员工类Developer 继承 员工类Employee
publicabstractclass Developer extendsEmployee {
}
定义维护部员工类Maintainer 继承 员工类Employee
publicabstractclass Maintainer extendsEmployee {
}
定义JavaEE工程师 继承 研发部员工类,重写工作方法
publicclass JavaEE extendsDeveloper {
publicvoid work() {
System.out.println("员工号为 " + getId() + "的 " +getName() + " 员工,正在研发淘宝网站");
}
}
定义Android工程师 继承 研发部员工类,重写工作方法
publicclass Android extendsDeveloper {
publicvoid work() {
System.out.println("员工号为 " + getId() + "的 " +getName() + " 员工,正在研发淘宝手机客户端软件");
}
}
定义Network网络维护工程师 继承 维护部员工类,重写工作方法
publicclass Network extendsMaintainer {
publicvoid work() {
System.out.println("员工号为 " + getId() + "的 " +getName() + " 员工,正在检查网络是否畅通");
}
}
定义Hardware硬件维护工程师 继承 维护部员工类,重写工作方法
publicclass Hardware extendsMaintainer {
publicvoid work() {
System.out.println("员工号为 " + getId() + "的 " +getName() + " 员工,正在修复打印机");
}
}
在测试类中,创建JavaEE工程师对象,完成工作方法的调用
publicclass Test {
public staticvoid main(String[] args) {
//创建JavaEE工程师员工对象
JavaEEee = newJavaEE();
//设置该员工的编号
ee.setId("000015");
//设置该员工的姓名
ee.setName("小明");
//调用该员工的工作方法
ee.work();
}
}