• java第16次


    4、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数组里,并单元出数组中每个员工当月的工资。

    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;
            }
    }
    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;
            }    
        }
    
    }
    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;
            }
        }         
      }
    public class SalaesEmployee extends ColaEmployee {
         private int monthSales;
         private double royaltyRate; 
        public SalaesEmployee(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;
            }
        }    
    
    }
    public class Company {
         public void getSalary(ColaEmployee c,int month) {
             System.out.println(c.name + "在" + month + 
                             "月的月薪是: " + c.getSalary(month)+"元");
        }
    
    }
    public class TestCompany {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
             ColaEmployee[] cel = {
                        new SalariedEmployee("拿固定工资的员工", 6, 10000),
                        new HourlyEmployee("按小时拿工资的员工", 5, 100, 280),
                        new SalaesEmployee("销售人员", 3, 7000, 0.6)
                        };
                for (int i = 0; i < cel.length; i++) {
                    new Company().getSalary(cel[i],5);
                }
    
        }
    
    }

  • 相关阅读:
    P1121 环状最大两段子段和
    无题
    cdoj 1485 柱爷搞子串 sam treap
    自然数幂和
    Gym 100341C AVL Trees NTT
    线性筛分解质因子
    codeforces 366 Ant Man dp
    UVALive 6914 Maze Mayhem 轮廓线dp
    hdu 5790 Prefix 字典树 主席树
    莫比乌斯反演个人小结
  • 原文地址:https://www.cnblogs.com/zjzj123/p/12904860.html
Copyright © 2020-2023  润新知