Employee:这是所有员工总的父类
属性:员工的姓名,员工的生日月份。
方法:getSalary(int month) 根据参数月份来确定工资,如果该月员工过生日,则公司会额外奖励100元。
public abstract class Employee {
private String name;//员工姓名
private int month;//员工生日月份
public abstract double salary(int month);
public Employee() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getMonth() {
return month;
}
public void setMonth(int month) {
this.month = month;
}
public Employee(String name, int month) {
this.name = name;
this.month = month;
}
}
SalariedEmployee: Employee的子类,拿固定工资的员工。
属性:月薪
public class SalariedEmployee extends Employee{
private double Msalary;//月薪
public SalariedEmployee(String name,int month,double msalary) {
this.Msalary=msalary;
}
public SalariedEmployee() {
super();
}
public SalariedEmployee(double msalary){
this.Msalary=msalary;
}
public double getMsalary() {
return Msalary;
}
public void setMsalary(double msalary) {
Msalary = msalary;
}
@Override
public double salary(int month) {
double salary=this.Msalary;
if (super.getMonth()==month){
salary+=100;
System.out.println("姓名"+super.getName()+"生日"+super.getMonth()+"有奖励");
}
return salary;
}
}
HourlyEmployee:Employee的子类,按小时拿工资的员工。
每月工作超出160小时的部分按照1.5倍工资发放。
属性:每小时的工资、每月工作的小时数
public class HourlyEmployee extends Employee{
private double hsalary;//每小时工资
private int hours;//每月工作的小时数
public double getHsalary() {
return hsalary;
}
public void setHsalary(double hsalary) {
this.hsalary = hsalary;
}
public int getHours() {
return hours;
}
public void setHours(int hours) {
this.hours = hours;
}
public HourlyEmployee(double hsalary, int hours) {
this.hsalary = hsalary;
this.hours = hours;
}
public HourlyEmployee() {
super();
}
@Override
public double salary(int month) {
return 0;
}
}
SalesEmployee:Employee的子类,销售人员,工资由月销售额和提成率决定。
属性:月销售额、提成率
public class SalesEmployee extends Employee{
private double Msales;//月销售额
private double ticheng;//提成率
public double getMsales() {
return Msales;
}
public void setMsales(double msales) {
Msales = msales;
}
public double getTicheng() {
return ticheng;
}
public void setTicheng(double ticheng) {
this.ticheng = ticheng;
}
public SalesEmployee(double msales, double ticheng) {
Msales = msales;
this.ticheng = ticheng;
}
public SalesEmployee() {
super();
}
@Override
public double salary(int month) {
return 0;
}
}
BasePlusSalesEmployee:SalesEmployee的子类,有固定底薪的销售人员
工资由底薪加上销售提成部分。
属性:底薪
public class BasePlusSalesEmployee extends SalesEmployee{
private double Basicsalary;//底薪
public double getBasicsalary() {
return Basicsalary;
}
public void setBasicsalary(double basicsalary) {
Basicsalary = basicsalary;
}
public BasePlusSalesEmployee(double msales, double ticheng, double basicsalary) {
super(msales, ticheng);
Basicsalary = basicsalary;
}
@Override
public double getMsales() {
return super.getMsales();
}
}
测试类
public class Test {
public static void main(String[] args) {
Employee employee[]=new Employee[5];
System.out.println("------------");
}
}