jenny6666 2018-10-17 17:19 采纳率: 0%
浏览 3405

JAVA使用继承和多态解决公司支出的总薪水问题

abstract class Employee {
public abstract double earnings();
}
class YearWorker extends Employee {
//重写earnings()方法
}
class MonthWorker extends Employee {
//重写earnings()方法
}
class WeekWorker extends Employee {
//重写earnings()方法。
}
class Company {
Employee[] employee;
double salaries=0;
Company(Employee[] employee) {
this.employee=employee;
}
public double salariesPay() {
//计算salaries。
}

}
public class CompanySalary {
public static void main(String args[]) {
Employee [] employee=new Employee[29]; //公司有29名雇员
for(int i=0;i<employee.length;i++) { //雇员简单地分成三类
if(i%3==0)
employee[i]=new WeekWorker();
else if(i%3==1)
employee[i]=new MonthWorker();
else if(i%3==2)
employee[i]=new YearWorker();
}
Company company=new Company(employee);
System.out.println("公司薪水总额:"+company.salariesPay()+"元");
}
}
上述代码中要重写earnings方法,和计算salaries,怎么做呀,资料的讲解不会,要是增加多增加一种雇员该怎么改代码?

  • 写回答

3条回答 默认 最新

  • threenewbee 2018-10-17 17:36
    关注
     class YearWorker extends Employee {
    //重写earnings()方法
    @override
    public double earnings() {
    return 2000;
    }
    }
    class MonthWorker extends Employee {
    //重写earnings()方法
    @override
    public double earnings() {
    return 3000;
    }
    }
    class WeekWorker extends Employee {
    //重写earnings()方法。 
    @override
    public double earnings() {
    return 4000;
    }
    }
    薪水我随便定的哦
    
    增加一种雇员你按照现有的加上一个新的类
    class XXXWorker extends Employee
    重写 earnings()
    用 employee[i]=new XXXWorker(); 创建
    
    public double salariesPay() {
    //计算salaries。
    double sum = 0;
    for (Employee e : employee)
    {
    sum += e.earnings();
    }
    return sum;
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考