设计Worker类及其子类
程序员文章站
2022-05-04 14:21:49
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
下一篇: 揭秘:敌国为何要发兵百万逼乙弗皇后自尽?
推荐阅读
-
设计Worker类及其子类
-
PHP面向对象程序设计子类扩展父类(子类重新载入父类)操作详解
-
机械设计制造及其自动化专业前景如何?附机械类最吃香的专业排名
-
设计一个限制子类的访问的抽象类实例,要求在控制台输出如下结果
-
定义person类及其子类,并按要求设计、定义和实例化类 (实例)
-
内置数据结构,面向对象和继承回顾,继承顺序,抽象类,归一化设计,多态,鸭子类型
-
javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)_js面向对象
-
javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)_js面向对象
-
设计Worker类及其子类
-
PHP面向对象程序设计子类扩展父类(子类重新载入父类)操作详解