package red;
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;
}
}
package red;
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;
}
}
}
package red;
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;
}
}
}
}
package red;
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;
}
}
}
package red;
public class Company {
public void getSalary(ColaEmployee c,int month) {
System.out.println(c.name + "在" + month +
"月的月薪为" + c.getSalary(month)+"元");
}
}
package red;
public class TestCompany {
public static void main(String[] args) {
// TODO Auto-generated method stub
ColaEmployee[] cel = {
new SalariedEmployee("salariedEmployee", 6, 30000),//name,month,月薪
new HourlyEmployee("hourlyEmployee", 5, 100, 300),//name,month,时薪,小时数
new SalesEmployee("salesEmployee", 3, 7000000, 0.3)//name,month,月销售额,提成率
};
for (int i = 0; i < cel.length; i++) {
new Company().getSalary(cel[i],7);
}
}
}