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,怎么做呀,资料的讲解不会,要是增加多增加一种雇员该怎么改代码?
JAVA使用继承和多态解决公司支出的总薪水问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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; }
解决 2无用
悬赏问题
- ¥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语言,请帮蒟蒻写一个题的范例作参考