计算企业薪水
要求有一个abstract类,类名为Employee。Employee的子类有YearWorker、MonthWorker、WeekWorker。YearWorker对象按年领取薪水(12000元/年),MonthWorker对象按月领取薪水(2300元/月),WeekWorker对象按周领取薪水(780元/周)。Employee类有一个abstract方法: public abstract earnings();子类必须重写父类的earnings()方法,给出各自领取报酬的具体方式。有一个Company类,该类用Employee对象数组作为成员,Employee对象数组的单元可以是YearWorker对象的上转型对象、MonthWorker对象的上转型对象或WeekWorker对象的上转型对象。程序能输出Company对象一年需要支付的薪水总和。
![](https://profile-avatar.csdnimg.cn/5c29ccd73aa646f798b321d08a8a5adb_weixin_62241096.jpg!4)
求各位老哥编写一下这个Java程序,提供代码
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- CSDN专家-sinJack 2021-11-02 11:46关注
class Company { Employee[] em; //Employee作为成员 Company(Employee[] em) { //构造函数 this.em=em; } public static void main(String[] args) { // TODO Auto-generated method stub Employee[] em=new Employee[3]; em[0]=new YearWorker(1,12000.0); //上转型对象 em[1]=new MonthWorker(11,8000.0); em[2]=new WeekWorker(40,1200.0); Company com=new Company(em); double sum; sum=em[0].earnings()+em[1].earnings()+em[2].earnings(); System.out.println("总工资为:"+sum); } } abstract class Employee { abstract double earnings(); //抽象方法 } class MonthWorker extends Employee { int month; double monthSalary; MonthWorker(int m,double s){ month=m; monthSalary=s; } double earnings() { return month*monthSalary; } } class WeekWorker extends Employee { int week; double weekSalary; WeekWorker(int w,double s){ week=w; weekSalary=s; } double earnings() { return week*weekSalary; } } class YearWorker extends Employee { int year; double yearSalary; YearWorker(int y,double s){ //工作年数,年工资 year=y; yearSalary=s; } double earnings() { //重写抽象方法 return year*yearSalary; } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 2无用
悬赏问题
- ¥15 metadata提取的PDF元数据,如何转换为一个Excel
- ¥15 关于arduino编程toCharArray()函数的使用
- ¥100 vc++混合CEF采用CLR方式编译报错
- ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
- ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
- ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
- ¥50 如何openEuler 22.03上安装配置drbd
- ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
- ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
- ¥15 Windows11, backspace, enter, space键失灵