abstract class Employee
{
   public abstract double earnings( );
}
class YearWorker extends Employee
{
  【代码1】  // 重写earnings( )方法
}
class MonthWorker extends Employee
{
  【代码2】  // 重写earnings( )方法
}
class WeekWorker extends Employee
{
  【代码3】  // 重写earnings( )方法
}
class Company
{
   Employee[ ] employee;
   double salaries=0;
   Company(Employee[ ] employee)
   {
      this.employee=employee;
   }
   public double salariesPay( )
   {
      salaries=0;
     【代码4】  // 计算公司年工资总额salaries
      return salaries;
   }    
}
public class HardWork
{
   public static void main(String args[ ])
   {
【代码5】创建Employee[ ] employee对象,数组的初始化长度通过args[]参数来传递
      for(int i=0;i<employee.length;i++)
       {
【代码6】当i能被3整除时,初始化一个WeekWorker对象存放到employee[i]位置。
当i除以3余1时,初始化一个MonthWorker对象存放到employee[i]位置。
当i除以3余2时,初始化一个YearWorker对象存放到employee[i]位置。
       } 
     Company company=new Company(employee);
     System.out.println("公司年工资总额:"+company.salariesPay( ) );
   }
}

解决方案 »

  1.   


    //【代码1】
    public double earnings( ){
        return 999.9;
    }//【代码2】
    public double earnings( ){
        return 99.9;
    }//【代码3】
    public double earnings( ){
        return 9.9;
    }//【代码4】
    for(int i=0;i<employee.length;i++){
        salaries+=employee[i];
    }//【代码5】
    Employee[] employee=new Employee[args[0]];//【代码6】
    if(i%3==0){
       employee[i]=new WeekWorker();
    }
    if(i%3==1){
       employee[i]=new MonthWorker();
    }
    if(i%3==2){
       employee[i]=new YearWorker();
    }第一次回答技术性的问题,请大家多多指正。