第十二周作业

package red;

public class ColaEmployee {
    String name;
    int month;
    public ColaEmployee(){
    }
    public ColaEmployee (String name,int month) {
        this.name=name;
        this.month=month;
    }
    public double getSalary(int month){
        return 0;
    }

}
复制代码
复制代码
复制代码
复制代码
package red;

public class SalariedEmployee extends ColaEmployee {
     double monSalary;
        public  SalariedEmployee(String name,int month,double monSalary){
            super(name,month);
            this.monSalary=monSalary;
        }
      public double getSalary(int month){
          if(super.month==month){
              return monSalary+100;
          }else{
              return monSalary;
          }
      }

}
复制代码
复制代码
复制代码
复制代码
package red;

public class HourlyEmployee extends ColaEmployee {
     private int hourSalary;
        private int hourNum;
        public HourlyEmployee (String name,int month,int hourSalary,int hourNum){
            super(name,month);
             this.hourSalary=hourSalary;
             this.hourNum=hourNum;
         }
        public double getSalary(int month) {
            if(super.month==month) {
                if (hourNum>160) {
                    return hourSalary*160+hourSalary*(hourNum-160)*1.5+100;
                }else {
                    return hourSalary*hourNum+100;
                }
            }else {
                if (hourNum>160) {
                    return hourSalary*160+hourSalary*(hourNum-160)*1.5;
                }else {
                    return hourSalary*hourNum;
                }
            }
                 
         }

}
复制代码
复制代码
复制代码
复制代码
package red;

public class SalesEmployee extends ColaEmployee {
    private int monthsales;
    private double royaltyRate;
    public SalesEmployee(String name, int month,int monthSales,double royaltyRate) {
        super(name, month);
        this.monthsales = monthSales;
        this.royaltyRate =royaltyRate;
     }
    public double getSalary(int month) {
        if(super.month == month) {
            return monthsales * royaltyRate + 100;
        }else {
            return monthsales * royaltyRate;
        }
    }
    

}
复制代码
复制代码
复制代码
复制代码
package red;

public class Company {
    public void getSalary(ColaEmployee c,int month) {
        System.out.println(c.name + "在" + month + 
                        "月的月薪为" + c.getSalary(month)+"元");
   }

}
复制代码
复制代码
复制代码
复制代码
package red;

public class TestCompany {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        ColaEmployee[] cel = {
                new SalariedEmployee("salariedEmployee", 6, 30000),//name,month,月薪
                new HourlyEmployee("hourlyEmployee", 5, 100, 300),//name,month,时薪,小时数
                new SalesEmployee("salesEmployee", 3, 7000000, 0.3)//name,month,月销售额,提成率
                };
       
        for (int i = 0; i < cel.length; i++) {
            new Company().getSalary(cel[i],7);
        }
    }

}
复制代码
posted @ 2020-05-23 09:20  学习不错  阅读(110)  评论(0编辑  收藏  举报