Company類
public class Company {Employee[] employee;double salaries=0;Company(Employee[] employee){this.employee=employee;}public double salariedPay(){salaries=0;for(int i=0;i<employee.length;i++){salaries=salaries+employee[i].earings();}return salaries;}}
CompanySalary類
public class CompanySalary {public static void main(String[] args) {Employee[] employee=new Employee[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.salariedPay()+"元");}}
Employee類
public abstract class Employee {public abstract double earings();}
MonthWorker類
public class MonthWorker extends Employee {public double earings() {return 12*2300;}}
WeekWorker類
public class WeekWorker extends Employee {public double earings() {return 52*780;}}
YearWorker類
public class YearWorker extends Employee {public double earings() {return 12000;}}