第四题Cola公司的雇员分为以下若干类:(知识点:多态) [必做题]

4.1 ColaEmployee :这是所有员工总的父类,属性:员工的姓名,员工的生日月份。方法:getSalary(int month) 根据参数月份来确定工资,如果该月员工过生日,则公司会额外奖励100 元。

private String name;
		private int months;
		private int birthday;
		
		
		public String getName() {
			return name;
		}


		public void setName(String name) {
			this.name = name;
		}


		public int getMonths() {
			return months;
		}


		public void setMonths(int months) {
			this.months = months;
		}


		public int getBirthday() {
			return birthday;
		}


		public void setBirthday(int birthday) {
			this.birthday = birthday;
		}


		public ColaEmployee(String name, int months,int birthday) {
			super();
			this.name = name;
			this.months = months;
			this.birthday = birthday;
		}


		void getSalary() {
			
		}

4.2 SalariedEmployee : ColaEmployee 的子类,拿固定工资的员工。属性:月薪

private double mone;
	public SalariedEmployee(String name, int months, int birthday,double money) {
		super(name, months, birthday);
		if(super.getMonths()==super.getBirthday()) {
			System.out.println("员工"+name+months+"月的工资为"+(money+100));
		}else {
			System.out.println("员工"+name+months+"月的工资为"+money);
		}
	}

4.3 HourlyEmployee :ColaEmployee 的子类,按小时拿工资的员工,每月工作超出160 小时的部分按照1.5 倍工资发放。属性:每小时的工资、每月工作的小时数

	private double hours;
		private int mon;
	public HourlyEmployee(String name, int months, int birthday,double hours,int mon) {
		super(name, months, birthday);
		this.hours=hours;
		this.mon=mon;
		if(super.getBirthday()!=super.getMonths()&&super.getMonths()>=160) {
		System.out.println("员工"+name+months+"月的工资为"+(mon*160+(hours-160)*mon*1.5));
	}else  if(super.getBirthday()==super.getMonths()&&super.getMonths()>=160){
		System.out.println("员工"+name+months+"月的工资为"+(mon*160+(hours-160)*mon*1.5+100));
	}else if(super.getBirthday()==super.getMonths()&&super.getMonths()<160) {
		System.out.println("员工"+name+months+"月的工资为"+(mon*hours+100));
	}else if(super.getBirthday()!=super.getMonths()&&super.getMonths()<160) {
		System.out.println("员工"+name+months+"月的工资为"+mon*hours);
	}
	}

4.4 SalesEmployee :ColaEmployee 的子类,销售人员,工资由月销售额和提成率决定。属性:月销售额、提成率

private double x;
				private double L;
	public SalesEmployee(String name, int months, int birthday,double x,double L) {
		super(name, months, birthday);
		if(super.getMonths()==super.getBirthday()) {
			System.out.println("员工"+super.getName()+"工资为"+x*L+100);
		}else{
			System.out.println("员工"+super.getName()+"工资为"+x*L);
		}
		
	}

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

	ColaEmployee[]y=new ColaEmployee[6];
				y[0]=new SalariedEmployee("tofm", 2, 2, 2000);
				y[1]=new HourlyEmployee("tom", 4, 4, 170, 13);
				y[2]=new SalariedEmployee("to", 6, 6, 2000);
				y[3]=new SalariedEmployee("tm", 3, 3, 2000);
				y[4]=new SalesEmployee("tosm", 7, 7, 20000, 0.13);
				y[5]=new SalesEmployee("tmu",8, 8, 20000, 0.13);

猜你喜欢

转载自blog.csdn.net/qq_43189642/article/details/84978506