某公司的人员分为员工和经理两类,但经理也属于员工中的一类,公司员工和经理都有自己的姓名,年龄,工号、工资、工龄等属性(通过属性无法区分员工和经理)和工资上涨函数。假设每次给员工涨工资一次能涨10%,经理能涨20%。要求利用多态实现给员工和经理涨工资,测试并通过。
abstract class Renyuan {
String name;
int age;
String id;
double salary;
int year;
public Renyuan(String name,int age,String id,double salary,int year){
this.age=age;
this.name=name;
this.id=id;
this.year=year;
this.salary=salary;
}
public abstract void increacesalary();
public void setsalary(double salary){
this.salary=salary;
}
public double getSalary(){
return salary;
}
}
class staff extends Renyuan{
public staff(String name,int age,String id,double salary,int year){
super(name,age,id,salary,year);
}
public void increacesalary(){
double newsalary=salary*(1+0.1);
setsalary(newsalary);
}
}
class manager extends Renyuan{
public manager(String name,int age,String id,double salary,int year){
super(name,age,id,salary,year);
}
@Override
public void increacesalary(){
double newsalary=salary*(1+0.2);
setsalary(newsalary);
}
}
public class gongzi {
public static void main(String[] args) {
Renyuan renyuan1=new manager("zhangsan",25,"S001",1800,5);
Renyuan renyuan2=new staff("lisi",30,"SM001",1000,8);
renyuan1.increacesalary();
renyuan2.increacesalary();
System.out.println(renyuan1.getSalary());
System.out.println(renyuan2.getSalary());
}
}