求 大神帮忙详细解释下一下 java代码 谢谢

abstract class Employee{
public abstract double earnings();
}
class YearWorker extends Employee{
public double earnings(){
return 80000.0;
}
}
class MonthWorker extends Employee{
public double earnings(){
return 4000.0;
}
}
class WeekWorker extends Employee{
public double earnings(){
return 200;
}
}
class Company{
Employee[] employee;
double salaries=0;
Company(Employee[] employee){
this.employee=employee;
}
public double salariesPay(){
salaries=0;
for(int i=0;i<employee.length;i++){
salaries=salaries+employee[i].earnings();
}
return salaries;
}
}
public class HardWork{
public static void main(String args[]){
Employee[] employee=new Employee[20];
for(int i=0;i<employee.length;i++){
if(i%3==0){
employee[i]=new WeekWorker();
}
else if(i%3==1){
employee[i]=new MonthWorker();
}
else if(i%3==2){
employee[i]=new YearWorker();
}
}
Company company=new Company(employee);
System.out.println("公司年工资总额: "+company.salariesPay());
}
}

第1个回答  2013-05-29
是这么一个结构,有抽象类雇员Employee,包含抽象方法薪资earnings,他有三个实现类,分别是YearWorker,MonthWorker,WeekWorker,然后还有一个公司类Company,包含计算所有雇员薪资的方法salariesPay

然后在你的入口类HardWork中,创建了20个长度的数组,其中,如果编号除3余数为0,实例化为WeekWorker对象,余数为1实例化为MonthWorker对象,余数为2实例化为YearWorker对象,
然后将数组传递给公司类,计算所有雇员需要的工资
第2个回答  2013-05-29
你哪点看不懂? 太多人懒得看
相似回答