需求描述:
通过继承实现员工工资核算打印功能。
父类:员工类。(10分)
子类:部门经理类、普通员工类(10分)
部门经理工资=1000+单日工资*天数*等级(1.2)。(10分)
普通员工工资=单日工资*天数*等级(1.0)。(10分)
(1)员工属性:姓名,单日工资,工作天数(10分)
(2)员工方法(打印工资)(10分)
(3)普通员工及部门经理都是员工子类,需要重写打印工资方法。(10分)
(4)定义并初始化普通员工对象,调用打印工资方法输入工资,定义并初始化部门经理对象,调用打印工资方法输入工资(10分)
代码:
public class 员工工资核算打印 {
public static void main(String[] args) {
Worker_common wc = new Worker_common("普通员工",300,10,1);
wc.show(1);
Worker_manager wm = new Worker_manager("经理",500,10,1.2);
wm.show(1.2);
}
}
class Worker{
private String name;
private int salary_day;
private int day_work;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSalary_day() {
return salary_day;
}
public void setSalary_day(int salary_day) {
this.salary_day = salary_day;
}
public int getDay_work() {
return day_work;
}
public void setDay_work(int day_work) {
this.day_work = day_work;
}
public Worker() {};
public Worker(String name, int salary_day, int day_work) {
super();
this.name = name;
this.salary_day = salary_day;
this.day_work = day_work;
}
public void show(double grand) {
System.out.println("我叫"+name+"我的工资为"+salary_day*grand*day_work);
}
}
class Worker_common extends Worker{
private double grand;
public Worker_common() {};
public Worker_common(String name, int salary_day, int day_work,double grand) {
super(name,salary_day,day_work);
this.grand = grand;
}
public double getGrand() {
return grand;
}
public void setGrand(double grand) {
this.grand = grand;
}
@Override
public void show(double grand) {
System.out.println("我是"+super.getName()+",我的工资为"+(super.getSalary_day()*super.getDay_work()*this.grand));
}
}
class Worker_manager extends Worker{
private double grand;
public Worker_manager(String name, int salary_day, int day_work,double grand) {
super(name,salary_day,day_work);
this.grand = grand;
}
public double getGrand() {
return grand;
}
public void setGrand(double grand) {
this.grand = grand;
}
@Override
public void show(double grand) {
System.out.println("我是"+super.getName()+",我的工资为"+(1000+super.getSalary_day()*super.getDay_work()*this.grand));
}
}
输出:
我是普通员工,我的工资为3000.0
我是经理,我的工资为7000.0
看到了结果的我眼泪流下来。。。。。。一天相差200,加上底薪,加上等级,只有10天,相差4000块。细思极恐。努力吧猿们。