1. ColaEmployee父类
private String name; private int birmonth; public void getSalary(int month) { System.out.println("month:"+month); }
SalariedEmployee子类
private double monthsalary; private int month; public void salarySalariedEmployee(String name, int workmonth, int birmonth, double monthsalary) { if (workmonth == birmonth) { System.out.println("name:" + name + ",birmonth:" + birmonth + ",sumSalary:" + (monthsalary * workmonth + 100)); } else { System.out.println("name:" + name + ",birmonth:" + birmonth + ",sumSalary:" + monthsalary * workmonth); } }
HourlyEmployee子类
private double hoursalary; private int monthhour; public void salaryHourlyEmployee(String name, int birmonth, int workmonth, double hoursalary, int monthhour) { if (monthhour > 160) { if (workmonth == birmonth) { double sumsalary = (monthhour * workmonth - 160) * hoursalary * 1.5 + 160 * hoursalary + 100; System.out.println("name:" + name + ",birmonth:" + birmonth + ",sumSalary:" + sumsalary); } else { double sumsalary = (monthhour * workmonth - 160) * hoursalary * 1.5 + 160 * hoursalary; System.out.println("name:" + name + ",birmonth:" + birmonth + ",sumSalary:" + sumsalary); } } else { if (workmonth == birmonth) { double sumsalary = monthhour * workmonth * hoursalary + 100; System.out.println("name:" + name + ",birmonth:" + birmonth + ",sumSalary:" + sumsalary); } else { double sumsalary = monthhour * workmonth * hoursalary; System.out.println("name:" + name + ",birmonth:" + birmonth + ",sumSalary:" + sumsalary); } } }
SalesEmployee子类
private double monthsale; private double rate; public void salarySalesEmployee(String name, int birmonth, int workmonth, double monthsale, double rate) { if (workmonth == birmonth) { double sumsalary = (monthsale * workmonth) * rate + 100; System.out.println("name:" + name + ",birmonth:" + birmonth + ",sumSalary:" + sumsalary); } else { double sumsalary = (monthsale * workmonth) * rate; System.out.println("name:" + name + ",birmonth:" + birmonth + ",sumSalary:" + sumsalary); } }
Company类
public static void show(ColaEmployee ce) { if (ce instanceof SalariedEmployee) { SalariedEmployee se = (SalariedEmployee) ce; se.salarySalariedEmployee("张三", 6, 6, 6700); } else if (ce instanceof HourlyEmployee) { HourlyEmployee he = (HourlyEmployee) ce; he.salaryHourlyEmployee("李四", 5, 6, 15, 180); } else if (ce instanceof SalesEmployee) { SalesEmployee see = (SalesEmployee) ce; see.salarySalesEmployee("王五", 7, 5, 5200, 0.5); } }
测试类
package homework; public class TestCompany { public static void main(String[] args) { // TODO Auto-generated method stub Company C = new Company(); SalariedEmployee se = new SalariedEmployee(); C.show(se); System.out.println("======================================"); HourlyEmployee he = new HourlyEmployee(); C.show(he); System.out.println("======================================"); SalesEmployee see = new SalesEmployee(); C.show(see); } }