6 您所在的位置:网站首页 定义类person及其子类employee 6

6

2024-05-08 16:32| 来源: 网络整理| 查看: 265

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); } }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有