作者在 2008-07-15 11:27:32 发布以下内容
public class TestEmployee{
public static void main(String[] args){
Employee[] employees=new Employee[4];
employees[0]=new SalariedEmployee("liuzhaobin",3,800);
employees[1]=new HourlyEmployee("li4",4,30,100);
employees[2]=new SalesEmployee("wang5",5,100000,0.2);
employees[3]=new BasePlusSalesEmployee("wei6",6,100000,0.1,1000);
for(int i=0;i<employees.length;i++){
System.out.println(employees[i].getSalary(3));
}
}
}
public static void main(String[] args){
Employee[] employees=new Employee[4];
employees[0]=new SalariedEmployee("liuzhaobin",3,800);
employees[1]=new HourlyEmployee("li4",4,30,100);
employees[2]=new SalesEmployee("wang5",5,100000,0.2);
employees[3]=new BasePlusSalesEmployee("wei6",6,100000,0.1,1000);
for(int i=0;i<employees.length;i++){
System.out.println(employees[i].getSalary(3));
}
}
}
class Employee{
private String name;
private int month;
public Employee(){}
public Employee(String name,int month){
this.name=name;
this.month=month;
}
public String getName(){
return this.name;
}
public int getMonth(){
return this.month;
}
public double getSalary(int month){
if(this.month==month){
return 100;
}else{
return 0;
}
}
}
private String name;
private int month;
public Employee(){}
public Employee(String name,int month){
this.name=name;
this.month=month;
}
public String getName(){
return this.name;
}
public int getMonth(){
return this.month;
}
public double getSalary(int month){
if(this.month==month){
return 100;
}else{
return 0;
}
}
}
class SalariedEmployee extends Employee{
private int salary;
public SalariedEmployee(){}
public SalariedEmployee(String name,int month,int salary){
super(name,month);
this.salary=salary;
}
public double getSalary(int month){
return salary+super.getSalary(month);
}
}
private int salary;
public SalariedEmployee(){}
public SalariedEmployee(String name,int month,int salary){
super(name,month);
this.salary=salary;
}
public double getSalary(int month){
return salary+super.getSalary(month);
}
}
class HourlyEmployee extends Employee{
private int salary;
private int hours;
public HourlyEmployee(){}
public HourlyEmployee(String name,int month,int salary,int hours){
super(name,month);
this.salary=salary;
this.hours=hours;
}
public double getSalary(int month){
if(hours>160){
return (160*salary)+((hours-160)*salary*1.5)+super.getSalary(month);
}
return hours*salary;
}
}
private int salary;
private int hours;
public HourlyEmployee(){}
public HourlyEmployee(String name,int month,int salary,int hours){
super(name,month);
this.salary=salary;
this.hours=hours;
}
public double getSalary(int month){
if(hours>160){
return (160*salary)+((hours-160)*salary*1.5)+super.getSalary(month);
}
return hours*salary;
}
}
class SalesEmployee extends Employee{
private int saleMoney;
private double rote;
public SalesEmployee(){}
public SalesEmployee(String name,int month,int saleMoney,double rote){
super(name,month);
this.saleMoney=saleMoney;
this.rote=rote;
}
public double getSalary(int month){
return (saleMoney*rote)+super.getSalary(month);
}
}
private int saleMoney;
private double rote;
public SalesEmployee(){}
public SalesEmployee(String name,int month,int saleMoney,double rote){
super(name,month);
this.saleMoney=saleMoney;
this.rote=rote;
}
public double getSalary(int month){
return (saleMoney*rote)+super.getSalary(month);
}
}
class BasePlusSalesEmployee extends SalesEmployee{
private int salary;
public BasePlusSalesEmployee(){}
public BasePlusSalesEmployee(String name,int month,int saleMoney,double rote,int salary){
super(name,month,saleMoney,rote);
this.salary=salary;
}
public double getSalary(int month){
return salary+super.getSalary(month);
}
}
private int salary;
public BasePlusSalesEmployee(){}
public BasePlusSalesEmployee(String name,int month,int saleMoney,double rote,int salary){
super(name,month,saleMoney,rote);
this.salary=salary;
}
public double getSalary(int month){
return salary+super.getSalary(month);
}
}