计算企业薪水
要求有一个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对象一年需要支付的薪水总和。
求各位老哥编写一下这个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 TMC2209串口模式下读取不到寄存器的值串口助手蓝色字体是发过去的消息,绿色字体是收到的消息,第二行发送读取寄存器的指令但是没有读取到寄存器的值串口助手如下图:接线如下图,如何解决?
- ¥15 高通安卓11提取完整线刷包软件,或者优博讯dt50顺丰刷机包
- ¥20 C,有个译码器,换了信道就跑不出原来数据
- ¥15 MIMIC数据库安装问题
- ¥60 基于JTag协议开发Fpga下载器上位机,哪位大🐂有偿指导?
- ¥20 全书网Java爬取数据
- ¥15 怎么获取红包封面的原始链接,并且获取红包封面序列号
- ¥100 微信小程序跑脚本授权的问题
- ¥100 房产抖音小程序苹果搜不到安卓可以付费悬赏
- ¥15 STM32串口接收问题