zoukankan      html  css  js  c++  java
  • 十一周课下作业

    4、Cola公司的雇员分为以下若干类:(知识点:多态)

    (1) ColaEmployee :这是所有员工总的父类,属性:员工的姓名,员工的生日月份。

    • 方法:getSalary(int month) 根据参数月份来确定工资,如果该月员工过生日,则公司会额外奖励100 元。

    (2) SalariedEmployee :     ColaEmployee 的子类,拿固定工资的员工。

    • 属性:月薪

    (3) HourlyEmployee :ColaEmployee 的子类,按小时拿工资的员工,每月工作超出160 小时的部分按照1.5 倍工资发放。

    • 属性:每小时的工资、每月工作的小时数

    (4) SalesEmployee :ColaEmployee 的子类,销售人员,工资由月销售额和提成率决定。

    • 属性:月销售额、提成率

    (5) 定义一个类Company,在该类中写一个方法,调用该方法可以打印出某月某个员工的工资数额,写一个测试类TestCompany,在main方法,把若干各种类型的员工放在一个ColaEmployee 数组里,并单元出数组中每个员工当月的工资。

    package qc;
    
    public class ColaEmployee {
          String name;
          int month;
          
          public ColaEmployee() {
            super();
          }
    
          public ColaEmployee(String name, int month) {
            super();
            this.name = name;
            this.month = month;
          }
    
          public double getSalary(int month){
              return 0;
          }
    }
    package qc;
    
    public class SalariedEmployee extends ColaEmployee {
            double salary;
    
            public SalariedEmployee() {
                super();
            }
    
            public SalariedEmployee(String name,double salary,int month) {
                super(name,month);
                this.salary = salary;
            }
            public double getSalary(int month){
                  if(super.month==month){
                     return  salary+100; 
                  }
                  else{
                      return salary;
                  }
              }
    
    }
    package qc;
    
    public class HourlyEmployee extends ColaEmployee{
                double hoursalary;
                double hour;
                public HourlyEmployee() {
                    super();
                }
                public HourlyEmployee(String name,double hoursalary, double hour,int month) {
                    super();
                    this.hoursalary = hoursalary;
                    this.hour = hour;
                }
                public double getSalary(int month){
                if(super.month==month){
                    if(hour>160){
                        return hoursalary*160+(hour-160)*1.5*hoursalary+100;
                    }else{
                        return hoursalary*160+100;
                    }
                }else{
                    if(hour>160){
                        return hoursalary*160+(hour-160)*1.5*hoursalary;
                    }else{
                        return hoursalary*160;
                    }
                }
                  }
                
    }
    package qc;
    
    public class Sales extends ColaEmployee{
            double monthsalary;
            double reward;
            public Sales() {
                super();
            }
            public Sales(String name,double monthsalary, double reward,int month) {
                super();
                this.monthsalary = monthsalary;
                this.reward = reward;
            }
            public double getSalary(int month){
                if(super.month==month){
                    return monthsalary*reward+100;
                }else{
                    return monthsalary*reward;
                }
            }
    
    }
    package qc;
    
    public class Company {
          public void getSalary(ColaEmployee c, int month){
              System.out.println(c.name + "在" + month + "月月薪为" + c.getSalary(month) + "元");
              
          }
    }
    package qc;
    
    public class TestCompany {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
              ColaEmployee[] all = {
                      new SalariedEmployee("张三", 8000, 9),
                      new HourlyEmployee("李四", 5, 10, 3),
                      new Sales("王二", 50000,0.5, 3)
                      };
              for (int i = 0; i < all.length; i++) {
                  new Company().getSalary(all[i],5);
              }
        }
    
    }
  • 相关阅读:
    跳出iframe
    leetcode 225. Implement Stack using Queues
    leetcode 206. Reverse Linked List
    leetcode 205. Isomorphic Strings
    leetcode 203. Remove Linked List Elements
    leetcode 198. House Robber
    leetcode 190. Reverse Bits
    leetcode leetcode 783. Minimum Distance Between BST Nodes
    leetcode 202. Happy Number
    leetcode 389. Find the Difference
  • 原文地址:https://www.cnblogs.com/qq-77/p/12918243.html
Copyright © 2011-2022 走看看