要求设计abstract类,类名为Employee,类内有抽象方法earning(),功能是计算工资。
Employee的子类有YearWorker、MonthWorker、WeekWorker。
YearWorker对象按年领取薪水,每年年薪6万,MonthWorker按月领取薪水,每月3000元,WeekWorker按周领取薪水,每周500元。
有一个Company类,该类有两个属性,一个是用Employee数组作为属性,存放所有的员工,
一个是salaries属性,存放该公司每年该支付的总薪水,paySalaries方法能计算一年需支付的薪水总额。
测试类定义29名员工,员工编号0-28,能被3整除的员工为WeekWorker,除3余数为1的是MonthWorker,
除3余数为2的是YearWorker,测试类输出该公司支付总金额。
这里面我做到了Company类,但不理解怎么用Employee数组作为属性,存放所有的员工。
class Company{
private Employee[] employee;
};
这样存。
抽象类就是只定义方法,不具体实现,由各个子类具体完成各自的方法实现。
用父类来定义一个数组,是可以存子类对象的,如下。但是存的同时也会被自动向上转型成父类。
Employee[] emps = new Employee[3];
emps[0] = new YearWorker();
emps[1] = new MonthWorker();
emps[2] = new WeekWorker();