一个公司存在不同职位,不同职位计算工资的方法也不相同。工资可能是固定的,也可能根据销售额或工作量来计算。假设公司有三种职务:经理、计件工人和计时工人:他们的工资组成分别为:

*```java

标题一个公司通常都会存在着不同职位,而不同的职位计算工资的方法也是不相同的。工资可能是固定不变的,也可能是根据销售额或工作量来计算。

假设公司有三种职务:经理、计件工人和计时工人:他们的工资组成分别为:

经理的工资=基本工资+奖金

计件工人的工资=基本工资+产品数量每件的报酬 计时工人的工资=基本工资+工作时间每小时报酬 要求:

1.新建抽象类Salary,有姓名、工号、职位、工资四个属性,类中有构造方法,抽象方法 earning()(作用为计算工资),非抽象方法 setSalary()(修改基本工资),printSalary()方法:打印输出工号、姓名、职位及工资

2.新建终结类Boss继承Salary类,有自己的属性 prize(奖金),构造方法,重写earning()方法,计算经理的工资;增加修改奖金方法set()

3.新建终结类PieceWorker继承Salary类,有自己的属性num(件数)、wagePer(每件的报酬),构造方法,重写earning()方法,计算计件制工人的工资;增加set()方法,作用为设置件数;重载set()方法,设置每件报酬。

4.新建终结类HourWorker,要求与上类似

5.新建测试类SalaryCalDemo,创建上述类的实例并初始化。通过调用set方法,修改相关数据。最终输出三种职务的工资*

abstract class Salary {
    String name;
    String id;
    String status;
    int salary;
    public Salary(String name,String id,String status,int salary){
        this.name =name;
        this.id =id;
        this.status=status;
        this.salary=salary;
    }

    public Salary() {

    }
    public void setSalary(){

        this.salary=salary;
    }
    abstract void earning();
    public int getSalary(){
        return salary;
    }
    public String toString() {
        return "工号:"+id+"\n"+"姓名:"+name+"\n"+"职位:"+status+"\n"+"工资:"+salary;
    }
    public int printSalary(){
        return salary;
    }
}

final class Boss extends Salary{
    int prize;
    public Boss(){

    }
    public Boss(String name,String id,String status,int salary,int prize){
        super(name,id,status,salary);
        this.prize=prize;
    }
    public int getPrize(){
        return prize;
    }
    public void earning(){
        salary = getSalary() + getPrize();
        System.out.println("经理的工资为:"+salary);
    }
    public void setPrize(int prize){
        this.prize=prize;
    }
}

final class PreceWorker extends Salary{
    int num,wagePer;
    public PreceWorker(){

    }
    public PreceWorker(String name,String id,String status,int salary,int num,int wagePer){
        super(name,id,status,salary);
        this.num=num;
        this.wagePer=wagePer;
    }
    public int getNum(){
        return num;
    }
    public void setNum(int num){
        this.num=num;
    }
    public int getWagePer(){
        return wagePer;
    }
    public void setWagePer(int wagePer){
        this.wagePer=wagePer;
    }
    public void earning(){
        salary=getSalary()+(getWagePer()*getNum())*30;
        System.out.println("计件工人的工资为:"+salary);
    }
}

final class HourWorker extends Salary{
    int hour,money;
    public HourWorker(){

    }
    public HourWorker(String name,String id,String status,int salary,int hour,int money){
        super(name,id,status,salary);
        this.hour=hour;
        this.money=money;
    }

    public int getHour() {
        return hour;
    }
    public void setHour(int hour){
        this.hour=hour;
    }
    public int getMoney(){
        return money;
    }
    public void setMoney(int money){
        this.money=money;
    }
    public void earning(){
        salary=getSalary()+(getHour()*getMoney())*30;
        System.out.println("计时工人的工资是:"+salary);
    }
}

public class SalaryCalDemo{
    public static void main(String[] args) {
        Salary salary= new Boss();
        salary.name="陆";
        salary.id="666";
        salary.status="所长";
        salary.salary=10000;
        System.out.println(salary);
        Boss boss =new Boss("陆","666","所长",10000,5000);
        boss.earning();
        PreceWorker preceWorker=new PreceWorker("陆","666","所长",10000,100,1);
        preceWorker.earning();
        HourWorker hourWorker=new HourWorker("陆","666","所长",10000,10,10);
        hourWorker.earning();
    }
}

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我不是陆神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值