public class ColaEmployee {
String name;
int month;
public ColaEmployee() {
}
public ColaEmployee(String name,int month){
this.name=name;
this.month=month;
}
public double getSalary(int month) {
return 0;
}
}
public class SalariedEmployee extends ColaEmployee{
double monSalary;
public SalariedEmployee(String name,int month,double monSalary) {
super(name,month);
this.monSalary=monSalary;
}
public double getSalary(int month) {
if (super.month==month) {
return monSalary +100;
}else {
return monSalary;
}
}
}
public class HourlyEmployee extends ColaEmployee{
private int hourSalary;
private int hourNum;
public HourlyEmployee(String name, int month,int hourSalary,int hourNum) {
super(name,month);
this.hourSalary=hourSalary;
this.hourNum=hourNum;
}
public double getSalary(int month) {
if(super.month==month) {
if (hourNum>160) {
return hourSalary*160+hourSalary*(hourNum-160)*1.5+100;
}else {
return hourSalary*hourNum+100;
}
}else {
if (hourNum>160) {
return hourSalary*160+hourSalary*(hourNum-160)*1.5;
}else {
return hourSalary*hourNum;
}
}
}
}
public class SalesEmployee extends ColaEmployee {
private int monthSales;
private double royaltyRate;
public SalesEmployee(String name, int month,int monthSales,double royaltyRate) {
super(name, month);
this.monthSales = monthSales;
this.royaltyRate = royaltyRate;
}
public double getSalary(int month) {
if(super.month == month) {
return monthSales * royaltyRate + 100;
}else {
return monthSales * royaltyRate;
}
}
}
public class Company {
public void getSalary(ColaEmployee c,int month) {
System.out.println(c.name + "在" + month +
"月的月薪为" + c.getSalary(month)+"元");
}
}
public class TestCompany {
public static void main(String[] args) {
ColaEmployee[] cel = {
new SalariedEmployee("salariedEmployee", 6, 30000),
new HourlyEmployee("hourlyEmployee", 5, 100, 300),
new SalesEmployee("salesEmployee", 3, 7000000, 0.3)
};
for (int i = 0; i < cel.length; i++) {
new Company().getSalary(cel[i],7);
}
}
}