//员工父类
public class Staff {
private String name;
private int salary;//基本工资
private int score;//绩效
public Staff() {
}
public Staff(String name, int salary, int score) {
this.name = name;
this.salary = salary;
this.score = score;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public double getTrueSalary(int salary,int score) {//获取实发工资
return salary*0.8+salary*0.2*score*0.01;
}
@Override
public String toString() {
return "姓名:" + name + ", 底薪:" + salary + ", 绩效:" + score + ",实发工资:"+getTrueSalary(salary,score);
}
}
public class Manager extends Staff{
private int marketCost;//市场费用
public int getMarketCost() {
return marketCost;
}
public void setMarketCost(int marketCost) {
this.marketCost = marketCost;
}
//经理的工资计算
//重写父类的计算工资的方法
@Override
public double getTrueSalary(int salary, int score) {
return salary*0.7+salary*0.3*score*0.01+getMarketCost();
}
}
public class Employee extends Staff{
//普通员工工资计算
@Override
public double getTrueSalary(int salary, int score) {
return salary*0.9+salary*0.1*score*0.01;
}
}
public class TestStaff {
public static void main(String[] args) {
//创建员工经理对象
Manager m1=new Manager();
m1.setName("张三");
m1.setSalary(15000);
m1.setScore(80);
m1.setMarketCost(20000);
System.out.println(m1);
//创建普通员工
Employee e1=new Employee();
e1.setName("李四");
e1.setSalary(8000);
e1.setScore(90);
System.out.println(e1);
}
}