黑马程序员技术交流社区

标题: 抽象类(abstract)的一个具体使用示例 [打印本页]

作者: 追逐    时间: 2014-3-14 11:04
标题: 抽象类(abstract)的一个具体使用示例
/*
        假如我们在开发一个系统时需要对员工进行建模,员工包含3个属性;
        姓名、工号以及工资、经理也是员工。出来含有员工的属性外,另为还有一个
        奖金属性。请使用继承的思想设计出员工类和经理类。要求类中提供必要的方
        法进行属性访问。
       
        员工类包含三个属性:姓名(name)、工号(id)、工资(pay);
        经理类:继承了员工。并有自己特有的奖金bonus.
        并且都有一个工作的函数
*/
//员工类
abstract class Employee {

        private String name;
        private String id;
        private double pay;
        Employee(String name, String id, double pay) {
                this.name = name;
                this.id = id;
                this.pay = pay;
        }
       
        //因为其不知道员工和经理的具体工作是什么,所以定义一个抽象方法。用于被别的类重写
        abstract void work();
       
}

//定义一个具体员工的类
class Pro extends Employee {
       
        Pro(String name, String id, double pay) {
                super(name, id, pay);
        }
       
        public void work() {
                System.out.println("员工打字");
        }
       
}

//定义一个经理类
class Manager extends Employee {

        private double bonus;
        Manager(String name, String id, double pay, double bonus) {
                super(name, id, pay);
                this.bonus = bonus;
        }
       
        public void work() {
                System.out.println("经理管着人");
        }
       
}

//测试类
class AbstractTest {
        public static void main(String[] args) {
                Pro p = new Pro("张三", "2012020", 32);
                p.work();
                Manager m = new Manager("李四", "3202030", 32, 21);
                m.work();
        }
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2