工资测试

假定要为某个公司编写雇员工资支付程序,这个公司有各种类型的雇员(Employee),
不同类型的 雇员按不同的方式支付工资: 经理(Manager):每月获得一份固定的工资。
销售人员(Salesman):在基本工资的基础上每月还有销售提成。 工人(Worker):按
照每月工作的天数计算工资。 根据上述要求试用类的继承和相关机制描述这些功能,并
编写一个 Java 应用程序,演示这些类的用 法。 应设计一个雇员类(Employee)描述所
有雇员的共图特性,这个类应该提供一个计算工资的抽象方法 ComputeSalary(),使得可
以通过这个类计算所有雇员的工资。经理、销售人员和一般工人对应的类都 应该继承这
个类,并重新定义计算工资的方法,进而给出它的具体实现

在这里插入代码片
package Empolee;
import java.util.Scanner;
abstract class Employee{
    String name;
    double salary;
    Employee(){
        setName();
        ComputeSalary();
    }
    Employee(String name){
        this.name=name;
        ComputeSalary();
    }
    Employee(String name, double salary) {
        this.name = name;
        this.salary = salary;
    }
    public void setName(){
        System.out.println("请输入姓名:");
        Scanner reader=new Scanner(System.in);
        name=reader.nextLine();
    }
    public void display(){
        System.out.println("员工 " + name +" 的工资为:" + salary);
    }
    public abstract void ComputeSalary();
}
class Manager extends Employee{
    Manager(){
        super();
    }
    Manager(String name){
        super(name);
    }
    Manager(String name, double salary){
        super(name, salary);
    }

    @Override
    public void ComputeSalary() {
        Scanner reader=new Scanner(System.in);
        System.out.println("请输入经理"+name+"的固定工资:");
        salary=reader.nextDouble();
        System.out.println("经理的 " + name + " 工资为:" + salary);
    }
}
class saler extends Employee{
    saler(){
        super();
    }
    saler(String name){
        super(name);
    }
    saler(String name,double salary){
        super(name,salary);
    }

    @Override
    public void ComputeSalary() {
        Scanner reader=new Scanner(System.in);
        System.out.println("请输入销售员"+name+"的底薪工资:");
        double basicsalary=reader.nextDouble();
        System.out.println("请输入销售员"+name+"本月的薪水提成:");
        double extrasalary=reader.nextDouble();
        salary=basicsalary+extrasalary;
        System.out.println("本月销售员"+name+"的工资为:"+salary);
        }
    }
class worker extends Employee{
    worker(){
        super();
    }
    worker(String name){
        super(name);
    }
    worker(String name,double salary){
        super(name,salary);
    }

    @Override
    public void ComputeSalary() {
        Scanner reader=new Scanner(System.in);
        System.out.println("请输入员工"+name+"的日薪:");
        int dailysalry=reader.nextInt();
        System.out.println("请输入员工"+name+"本月的工作天数:");
        int workdays=reader.nextInt();
        salary=dailysalry*workdays;
        System.out.println("员工"+name+"本月工资为:"+salary);
    }
}
public class SlaryTest {
    public static void main(String args[]){
        Manager manager=new Manager();
        Manager manager1=new Manager("吴用");
        Manager manager2=new Manager("张军",4500);
        manager2.display();
        saler sa=new saler();
        saler sa1=new saler("李自成");
        saler sa2=new saler("陈圆圆",3500);
        sa2.display();
        worker wor=new worker();
        worker wor1=new worker("李欣");
        worker wor2=new worker("武钢",4000);
        wor2.display();
    }
}
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值