

package com.atguigu.exercise2;abstract public class Employee {    //属性    private String name;    private int number;    private MyDate birthday;    //构造器    public Employee(String name, int number, MyDate birthday) {  super();  this.name = name;  this.number = number;  this.birthday = birthday;    }    //方法    //抽象方法    public  abstract int earnings();//收入    @Override    public String toString() {  return "name=" + name + ", number=" +          number + ", birthday=" + birthday.toDateString();    }    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 MyDate getBirthday() {  return birthday;    }    public void setBirthday(MyDate birthday) {  this.birthday = birthday;    }}
package com.atguigu.exercise2;public class MyDate {    //属性    private int year;    private int month;    private int day;    //构造器    public MyDate(){    }    public MyDate(int year,int month,int day){  this.year = year;  this.month = month;  this.day = day;    }    //方法    public String  toDateString() {  return year + "年" + month + "月" + day + "日";    }    public int getYear() {  return year;    }    public void setYear(int year) {  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;    }}
package com.atguigu.exercise2;public class SalariedEmployee extends Employee{    //属性    private int monthlySalary;//月工资    //构造器    public SalariedEmployee(String name, int number, MyDate birthday) {  super(name, number, birthday);    }    public SalariedEmployee(String name, int number, MyDate birthday,int monthlySalary) {  super(name, number, birthday);  this.monthlySalary = monthlySalary;    }    //方法    @Override    public int earnings() {  return monthlySalary;    }    @Override    public String toString() {  return "SalariedEmployee[name=" + getName() + ", number=" +      super.getNumber() + ", birthday=" + getBirthday() + "]";    }    public int getMonthlySalary() {  return monthlySalary;    }    public void setMonthlySalary(int monthlySalary) {  this.monthlySalary = monthlySalary;    }}
package com.atguigu.exercise2;public class HourlyEmployee extends Employee{    //属性    private int wage;//每小时的工资    private int hour;//月工作的小时数    //构造器    public HourlyEmployee(String name,int number,MyDate birthday) {  super(name, number, birthday);    }    public HourlyEmployee(String name,int number,MyDate birthday,int wage,int hour) {  super(name, number, birthday);  this.hour = hour;  this.wage = wage;    }    public int getWage() {  return wage;    }    //方法    public void setWage(int wage) {  this.wage = wage;    }    public int getHour() {  return hour;    }    public void setHour(int hour) {  this.hour = hour;    }    @Override    public int earnings() {  return wage*hour;    }    @Override    public String toString() {  return "HourlyEmployee ["+super.toString()+"]";    }}
package com.atguigu.exercise2;import java.util.Scanner;public class PayrollSystem {    public static void main(String[] args) {  Scanner scanner = new Scanner(System.in);  System.out.println("请输入当月的月份:");  int month = scanner.nextInt();  Employee[]  emps= new Employee[2];  emps[0] = new SalariedEmployee("马胜",1002,new MyDate(1992,3,12),6500);  emps[1] = new HourlyEmployee("小明",2001,new MyDate(1991,5,4),60,240);  for(int i = 0;i < emps.length;i++){      System.out.println(emps[i]);//遍历员工信息      //结算工资      double salary = emps[i].earnings();      if(month == emps[i].getBirthday().getMonth()){    salary = emps[i].earnings();//有生日时的月工资    System.out.println("生日快乐,奖励100元!");    System.out.println("月工资为:" + (salary + 100));//月工资      }else{    System.out.println("月工资为:" + salary );      }  }    }}