Java第十五周作业

Cola公司的雇员分为以下若干类:(知识点:多态) [必做
题]
• 4.1 ColaEmployee :这是所有员工总的父类,属性:员工的
姓名,员工的生日月份。方法:getSalary(int month) 根据参数
月份来确定工资,如果该月员工过生日,则公司会额外奖励
100 元。
• 4.2 SalariedEmployee : ColaEmployee 的子类,拿固定工
资的员工。属性:月薪
课后作业
• 4.3 HourlyEmployee :ColaEmployee 的子类,按小时拿工
资的员工,每月工作超出160 小时的部分按照1.5 倍工资发
放。属性:每小时的工资、每月工作的小时数
• 4.4 SalesEmployee :ColaEmployee 的子类,销售人员,
工资由月销售额和提成率决定。属性:月销售额、提成率
• 4.5 定义一个类Company,在该类中写一个方法,调用该
方法可以打印出某月某个员工的工资数额,写一个测试类
TestCompany,在main方法,把若干各种类型的员工放在一
个ColaEmployee 数组里,并单元出数组中每个员工当月的
工资。

package gc;

public class ColaEmployee {
protected String name;
protected int month;
 
 public ColaEmployee() {
super();

       }
    
        public ColaEmployee(String name, int month) {
            super();
            this.name = name;
             this.month = month;
         }
      
         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 double getSalary(int month) {
             return 0;
     
        }
    }
package gc;

public class SalariedEmployee extends ColaEmployee{
    double monthSalary;
 
     public SalariedEmployee() {
         super();
 
    }

    public SalariedEmployee(String name, int month, double monthSalary) {
        super(name, month);
        this.monthSalary = monthSalary;
    }

   public double getSalary(int month) {
         if (super.getMonth() == month) {
            return monthSalary + 100;
        } else {
             return monthSalary;
        }
     }
}
package gc;

public class HourlyEmpiloyee extends ColaEmployee{

int hS;
int hN;
    
            public HourlyEmpiloyee() {
                super();
    
            }
        
           public HourlyEmpiloyee(String name, int month, int hS, int hN) {
                super(name, month);
                 this.hS = hS;
                this.hN = hN;
            }
        
           public double getSalary(int month) {
               if (super.getMonth() > month) {
                   if (hN> 160) {
                       return hS * 160 + hS * (hN - 160) * 1.5 + 100;
                    } else {
                         return hS * hN + 100;
        
                     }
                } else {
                      if (hN > 160) {
                        return hS * 160 + hS * (hN - 160) * 1.5;
                    } else {
                         return hS * hN;
        
                    }
                }
           }}
     
package gc;

public class SalesEmployee extends ColaEmployee{
int monthSales;
double tich;

  public SalesEmployee() {
      super();

   }

  public SalesEmployee(String name, int month, int monthSales, double ticheng) {
       super(name, month);
        this.monthSales = monthSales;
        this.tich = ticheng;
    }
 
    public double getSalary(int month) {
        if (super.getMonth() == month) {
            return monthSales * tich + 100;
         } else {
             return monthSales * tich;
         }
    }
 
}
package gc;

public class Company {

     public void getSalary(ColaEmployee a, int month) {
               System.out.println(a.name + "在" + month + "月的工资为" + a.getSalary(month));
           }
        
        }
package gc;

public class test {


        public static void main(String[] args) {
            // TODO Auto-generated method stub
            ColaEmployee[] c = { 
                    new SalariedEmployee("gfh", 4, 2356), 
                    new HourlyEmpiloyee("jug", 2, 10, 450),
                    new SalesEmployee("grhu", 3, 59874, 0.5) 
                    };
            for (int i = 0; i < c.length; i++) {
                new Company().getSalary(c[i], 12);
            }

        }

    }

 

 

 

posted @ 2021-06-18 13:08  G_C  阅读(22)  评论(0)    收藏  举报