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

本文介绍如何设计一个工资系统,系统中包含两种类型的员工:按月计算工资的SalariedEmployee和按小时计算工资的HourlyEmployee。员工类(Employee)包含了姓名、编号和生日,并定义了抽象方法earnings()。MyDate类用于表示日期。SalariedEmployee和HourlyEmployee分别实现了earnings()方法,前者返回固定月薪,后者根据小时工资和工作小时数计算工资。此外,如果员工在当月过生日,其工资会额外增加100元。
摘要由CSDN通过智能技术生成

说明:

  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[
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值