说明:

  1. 定义一个Employee类
    该类包含:
    private成员变最name、number、birthday。其中birthday为MyDate类的对象;abstract方法earnings();toString()方法输出对象的name、number和birthday
  2. MyDate类
    包含:private成员变量month、day、year;toDateString()方法返回日期对应字符串:xxx年xx月xx日
  3. 定义salariedEmployee类继承Employee类,实现按月计算工资的员工处理。
    该类包括:
    private成员变量monthlySalary;实现父类的抽象方法earnings(),该方法返回monthlySalary值;toString()方法输出员工类型信息及员工的name,number , birthday。
  4. 参照SalariedEmployee类定义HourlyEmployee类,实现按小时计算工资的员
    工处理。
    该类包括:
    private成员变量wage和hour;实现父类的抽象方法earnings(),该方法返回wage*hour值; toString()方法输出员工类型信息及员工的name,number , birthday。
public class test11 {public static void main(String[] args) {Scanner scanner=new Scanner(System.in);System.out.println("请输入当月月份:");int m=scanner.nextInt();SalariedEmployee1 s1=new SalariedEmployee1("twl", 1345,new MyDate1(5, 29, 1999) , 7000);//System.out.println(s1.toString());HourlyEmployee1 h1=new HourlyEmployee1("twl", 1345,new MyDate1(7, 25, 1998),30,6);//System.out.println(h1.toString());HourlyEmployee1 h2=new HourlyEmployee1("twl", 1345,new MyDate1(9, 16, 2000),40,8);//    System.out.println(h2.toString());Employee1[] e1=new Employee1[3];e1[0]=s1;e1[1]=h1;e1[2]=h2;for (int i = 0; i < e1.length; i++) {System.out.println(e1[i].toString());if (m==e1[i].getBirthday().getMonth()) {System.out.println("该员工本月过生日,薪资加100元");}System.out.println("--------------------------");}}
}
abstract class Employee1{private String name;private int number;private MyDate1 birthday;public Employee1(String name, int number, MyDate1 birthday) {super();this.name = name;this.number = number;this.birthday = birthday;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getNumber() {return number;}public void setNumber(int number) {this.number = number;}public MyDate1 getBirthday() {return birthday;}public void setBirthday(MyDate1 birthday) {this.birthday = birthday;}abstract public double earnings();@Overridepublic String toString() {return "姓名:" + this.name + ", 电话:" + this.number + ", 生日:" + this.birthday;}
}
class MyDate1{private int month,day,year;public MyDate1(int month, int day, int year) {super();this.month = month;this.day = day;this.year = year;}public int getMonth() {return month;}public void setMonth(int month) {this.month = month;}public int getDay() {return day;}public void setDay(int day) {this.day = day;}public int getYear() {return year;}public void setYear(int year) {this.year = year;}public String toDateString() {return this.year+"年 "+this.month+"月 "+this.day+"日";}@Overridepublic String toString() {return toDateString();}
}class SalariedEmployee1 extends Employee1{private double monthlySalary;public SalariedEmployee1(String name, int number, MyDate1 birthday, double monthlySalary) {super(name, number, birthday);this.monthlySalary = monthlySalary;}public double getMonthlySalary() {return monthlySalary;}public void setMonthlySalary(double monthlySalary) {this.monthlySalary = monthlySalary;}@Overridepublic double earnings() {return monthlySalary;}@Overridepublic String toString() {return super.toString()+ ", 月薪:" + this.monthlySalary;}
}
class HourlyEmployee1 extends Employee1{private double wage,hour;public HourlyEmployee1(String name, int number, MyDate1 birthday, double wage, double hour) {super(name, number, birthday);this.wage = wage;this.hour = hour;}public double getWage() {return wage;}public void setWage(double wage) {this.wage = wage;}public double getHour() {return hour;}public void setHour(double hour) {this.hour = hour;}@Overridepublic double earnings() {return this.wage*this.hour;}@Overridepublic String toString() {return super.toString()+", 日薪:" + earnings();}
}

编写工资系统,实现不同类型员工(多态)的按月发放工资。如果当月出现某个Employee 对象的生日,则将该雇员的工资增加100元。相关推荐

  1. 对象、继承、封装、多态、抽象类的组合应用:编写工资系统,实现不同类型员工(多态)的按月发放工资。如果当月出现某个Employee对象的生日,则将在该雇员的工资上增加100元发给他。

    实验题目: 编写工资系统,实现不同类型员工(多态)的按月发放工资.如果当月出现某个Employee对象的生日,则将在该雇员的工资上增加100元发给他. 实验目的: 对象.继承.封装.多态.抽象类的组合 ...

  2. Java自学习day15-抽象类练习-编写工资系统,实现不同类型员工(多态)的按月发放工资

    编写工资系统,实现不同类型员工(多态)的按月发放工资.如果当月出现某个 Employee对象的生日,则将该雇员的工资增加100元. 实验说明: (1)定义一个Employee类,该类包含: priva ...

  3. 编写工资系统,实现不同类型员工(多态)的按月发放工资。如果当月出现某个 Employee对象的生日,则将该雇员的工资增加100元。

    工资系统 题目要求 设计思路 代码 运行结果 题目要求 附:题目来源于尚硅谷 编写工资系统,实现不同类型员工(多态)的按月发放工资.如果当月出现某个 Employee对象的生日,则将该雇员的工资增加1 ...

  4. java练习:编写工资系统,实现不同类型员工(多态)的按月发放工资。如果当月出现某个Employee对象的生日,则将该雇员的工资增加100元。

    1.员工类Employee: public abstract class Employee {//姓名private String name;//工号private String num;//生日pr ...

  5. javaswing员工工资系统java swing mysql 员工工资管理系统源码和导入文档(1014)

    目录 1.系统运行环境 2.系统功能介绍 3.项目结构略讲 3.1乱码问题 3.2 如何将UTF-8编码系统修改为GBK编码的系统? 3.3 项目结构 3.4 项目修改 3.5 项目运行 3.6 代码 ...

  6. java题算工资_Java模版方法的小练习——工资系统

    题目要求 解题思路 1.一共涉及了5个类,父类是Employee,父类中有个属性定义的是MyDate类的对象,存储的是生日信息.两个子类HourlyEmployee.SalariedEmployee代 ...

  7. 用抽象类简单实现一个发工资系统

    首先,创建5个类: Employee:员工类,其中有earnings()抽象方法 HourlyEmployee:按每小时来计算工资(不固定工资) SalariedEmployee:按月份来计算工资(固 ...

  8. java实现多态在工资系统中的应用:给出一个根据雇员类型,利用多态性完成工资单计算的程序。

    要求: Employee是抽象类,Employee的子类有Boss(每星期发给他固定工资,而不计工作时间).CommissionWorker(除基本工资外还根据销售额发放浮动工资).PieceWork ...

  9. 继承练习 :开发一个系统时 需要对员工进行建模 员工包含3个属性 姓名 工号 工资 功能 work

    /* 练习: 假如我们开发一个系统时 需要对员工进行建模 员工包含3个属性 姓名 工号 工资 功能 work 经理 也是员工 除了含有员工的属性外 另外还有一个奖金属性 请用继承的思想设计出 员工类 ...

最新文章

  1. python中的元类_python中的元类
  2. openvas进程间通讯api与报文交互
  3. 三十一、Scrapy爬取百度图片
  4. boost::hana::just用法的测试程序
  5. 截屏当前界面_电脑屏幕怎么截取,常见的几种电脑截屏方法
  6. 《Python Cookbook 3rd》笔记(5.21):序列化 Python 对象
  7. [Linux] 头文件加载顺序
  8. yii2实现WebService 使用 SoapDiscovery
  9. 锐起2540无盘教程
  10. 自动控制原理9.4---李雅普诺夫稳定性分析
  11. ubuntu虚拟机使用笔记——9、vmware卸载,重新安装ubuntu,重安后不能共享文件
  12. mybatis insert返回自增主键的id值
  13. OSChina 周四乱弹 —— 这个腿就有我来守护了
  14. [小把戏] 之IBatis.Net系统分页问题的解决
  15. 爆火书单视频怎么制作?实用制作教程来了
  16. node下载文件 解压压缩包
  17. css内边距外边距和边框
  18. Ubuntu备份还原
  19. 2021年广东省安全员B证第三批(项目负责人)新版试题及广东省安全员B证第三批(项目负责人)作业模拟考试
  20. 2022-2027年中国海洋功能性食品行业发展监测及投资战略研究报告

热门文章

  1. 每日一题——判断素数
  2. 计算机地图综合制图实验报告,地图制图实验报告.doc
  3. 基于SpringBoot的网上电影票购买系统设计与实现
  4. RabbitMQ入门学习笔记
  5. ORACLE 获取配置信息 USERENV函数
  6. 免密登录驾考网使用selenium自动爬取模拟试题
  7. CTF比赛(详细介绍)
  8. 3D打印Arduino 四轴飞行器
  9. 【路科V0】systemVerilog基础3——字符串类型
  10. 关于浏览器部分JS失效原因