向上转型技术练习(建立的源文件有Employee.java、各个子类YearWorker、MonthWorker和WeekWorker的源文件,Company.java和CompanyTest.java)
要求:
1)创建一个类名为Employee。
Employee类有一个方法earnings(),用来计算年薪,返回值类型为double;
public double earnings(){
System.out.println("员工发工资");
return 0;
}
2)Employee的子类有YearWorker、MonthWorker和WeekWorker,各个子类给出各自领取薪水的具体earnings()方式。
YearWorker对象按年领取薪水(年薪80万),
MonthWorker按月领取薪水(每月8000元),
WeekWorker按周领取薪水(每周1500元);
3) 建立一个Company类:
成员变量salaries //保存公司发放的薪水,
成员方法salariesPay() //用于计算某公司需要发放的全部员工的薪水总数,根据需要此方法可以带参数。
4) 创建测试类CompanyTest,在main()方法中,创建Company类的某个对象,输出其一年所有员工需要支付的薪水总额。
Employee.java
public class Employee {
public double earnings() {
System.out.println("员工发工资");
return 0;
}
}
YearWorker.java
public class YearWorker extends Employee {
@Override
public double earnings() {
return 800000;
}
}
MonthWorker.java
public class MonthWorker extends Employee {
@Override
public double earnings() {
return 8000 * 12;
}
}
WeekWorker.java
public class WeekWorker extends Employee {
@Override
public double earnings() {
return 1500 * 52;
}
}
Company.java
public class Company {
private double salaries;
public Company() {
salaries = 0;
}
public void salariesPay(Employee employee) {
salaries += employee.earnings();
}
public double getSalaries() {
return salaries;
}
}
CompanyTest.java
public class CompanyTest {
public static void main(String[] args) {
Company company = new Company();
YearWorker yearWorker = new YearWorker();
MonthWorker monthWorker = new MonthWorker();
WeekWorker weekWorker = new WeekWorker();
company.salariesPay(yearWorker);
company.salariesPay(monthWorker);
company.salariesPay(weekWorker);
System.out.println("公司需要支付的薪水总额为:" + company.getSalaries());
}
}