第九章案例 员工类系列的定义

案例介绍:

某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();

    }

}