java定义员工类,具有底薪、出勤天数、销售额属性和获得月薪的方法。定义销售员工类,计算本 月的总薪资。销售员工月薪:底薪 + 全勤绩效 + 销售额 + 提成。底薪为固定数额,出勤天数23天即为全勤,绩效为500元,缺勤一天无奖金。员工提成按销售额分档计算,1000元以内提成5%,1000元至2000元之间提成10%,2000-4000元提成15%,4000元以上提成20%)
时间: 2023-12-22 15:04:30 浏览: 49
以下是Java代码实现:
```java
public class Employee {
private double baseSalary; // 底薪
private int attendanceDays; // 出勤天数
private double salesAmount; // 销售额
public Employee(double baseSalary, int attendanceDays, double salesAmount) {
this.baseSalary = baseSalary;
this.attendanceDays = attendanceDays;
this.salesAmount = salesAmount;
}
public double getMonthlySalary() {
double salary = baseSalary;
if (attendanceDays == 23) {
salary += 500; // 全勤绩效
}
double commission = 0;
if (salesAmount <= 1000) {
commission = salesAmount * 0.05;
} else if (salesAmount <= 2000) {
commission = 1000 * 0.05 + (salesAmount - 1000) * 0.1;
} else if (salesAmount <= 4000) {
commission = 1000 * 0.05 + 1000 * 0.1 + (salesAmount - 2000) * 0.15;
} else {
commission = 1000 * 0.05 + 1000 * 0.1 + 2000 * 0.15 + (salesAmount - 4000) * 0.2;
}
salary += commission; // 提成
return salary;
}
}
public class SalesEmployee extends Employee {
private double commissionRate; // 提成比例
public SalesEmployee(double baseSalary, int attendanceDays, double salesAmount, double commissionRate) {
super(baseSalary, attendanceDays, salesAmount);
this.commissionRate = commissionRate;
}
@Override
public double getMonthlySalary() {
double salary = super.getMonthlySalary();
salary += salesAmount * commissionRate; // 提成
return salary;
}
}
```
在销售员工类中重写了父类的 `getMonthlySalary()` 方法,加上了提成的计算。其中,提成比例是通过构造器传入的。