欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

设计Worker类及其子类

程序员文章站 2022-12-20 19:36:10
6-2 设计Worker类及其子类 (20分)设计一个Worker类,有以下方法:(1)构造方法:带两个输入参数:工人的姓名和小时工资。(2)小时工资的get/set方法(3)pay()方法:带一个工作时长输入参数,输出:“Not Implemented”。接下来设计Worker的子类:HourlyWorker和SalariedWorker。两个子类都重写继承的方法pay()来计算工人的周薪。计时工按实际工时支付每小时工资,超过40小时的加班费为双倍工资。计薪工人的工资是40小时的工资,不管工作时...

6-2 设计Worker类及其子类 (20分)

设计一个Worker类,有以下方法:
(1)构造方法:带两个输入参数:工人的姓名和小时工资。
(2)小时工资的get/set方法
(3)pay()方法:带一个工作时长输入参数,输出:“Not Implemented”。
接下来设计Worker的子类:HourlyWorker和SalariedWorker。两个子类都重写继承的方法pay()来计算工人的周薪。计时工按实际工时支付每小时工资,超过40小时的加班费为双倍工资。计薪工人的工资是40小时的工资,不管工作时间是多少。因为与工作时长无关,故SalariedWorker的方法pay()可以不带参数调用。

类框架定义:

设计的类如下框架所示,完成后将该三类提交。
class Worker {
	……
}

class HourlyWorker extends Worker {
		……
}
class SalariedWorker extends Worker {
		……
}

裁判测试程序样例:

import  java.util.Scanner;

//Main测试类
public class Main{
  public static void main(String[] args) {
      Scanner input = new Scanner(System.in);
      Worker w1 = new Worker("Joe",15);
      w1.pay(35);
      SalariedWorker w2 = new SalariedWorker("Sue",14.5);
      w2.pay();
      w2.pay(60);
      HourlyWorker w3 = new HourlyWorker("Dana", 20);
      w3.pay(25);
      w3.setRate(35);
      w3.pay(25);     
  }
}

/* 请在这里填写答案 */

输入样例:
在这里给出一组输入。例如:

 25

输出样例:
在这里给出相应的输出。例如:

Not Implemented
580.0
580.0
500.0
875.0

解决:

class Worker {
	private String Name;
	private double Rate;
	public Worker(String _Name,double _Rate){
		Name = _Name;
		Rate = _Rate;
	}
	void setName(String _name) {
		Name = _name;
	}
	double getRate(){
		return Rate;
	}
	void setRate(double	_Rate){
		Rate = _Rate;
	}
	void pay(int time){
		System.out.println("Not Implemented");
	}
}

class HourlyWorker extends Worker {
	public HourlyWorker(String string, double d) {
		super(string ,d);
	}

	void pay(int time){
		if(time > 40)
			System.out.println(this.getRate()*time*2);
		else
			System.out.println(this.getRate()*time);
	}
}
class SalariedWorker extends Worker {
	public SalariedWorker(String string, double d) {
		super(string ,d);
	}
	void pay(){
		System.out.println(this.getRate()*40);
	}
	void pay(int time){
		System.out.println(this.getRate()*40);
	}
}

本文地址:https://blog.csdn.net/ds2001916/article/details/109557340

相关标签: java PTA