/*
* Copyright (c) 2013, 烟台大学计算机学院
* All rights reserved.
* 文件名称: company05-3——公司支出的总薪水
* 作 者:孙红蕾
* 完成日期:2013 年 10 月 13 日
* 问题描述:有一个adstract类,类名为Employee,有子类YearWorker(按年领取薪水),MonthWorker(按月领取薪水),WeekWorker(按周领取薪水)。且子类必须重写父类的earnings()方法,给出各自领取报酬的具体方式。
* 输入描述: 无
* 程序输出: 公司薪水总额
* 算法设计:略
*/
abstract class Employee {
public abstract double earnings();
}
public class YearWorker extends Employee {
public double earnings(){
return 12000;
}
}
public class MonthWorker extends Employee {
public double earnings(){
return 12*2300;
}
}
public class WeekWorker extends Employee {
public double earnings(){
return 52*780;
}
}
public 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 CompanySalary {
public static void main(String[] args){
Employee[] employee=new Employee[29]; //公司有29名职员
//把职员简单的分成三类
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()+"元");
}
}
更多推荐
company05-3——公司支出的总薪水
发布评论