Description
假定要为某个公司编写雇员工资支付程序,这个公司有各种类型的雇员(Employee),不同类型的雇员按不同的方式支付工资(都是整数): (1)经理(Manager)——每月获得一份固定的工资 (2)销售人员(Salesman)——在基本工资的基础上每月还有销售提成 (3)一般工人(Worker)——则按他每月工作的天数计算工资 在Employee中提供函数getSalary()计算每个雇员一个月的工资,并在子类中重写。 在main函数中构造Employee的三个变量,分别指向Manager、Salesman、Worker的对象,调用getSalary函数,输出三个对象的工资
Input
经理的月工资 销售人员的基本工资 销售人员的提成 工人的工作天数 工人每天的工资
Output
经理的工资 销售人员的工资 工人的工资
Sample Input
12000 3000 5000 22 200
Sample Output
12000 8000 4400
import java.util.Scanner;
public class Main{
public static void main(String[] argc)
{
Scanner scan = new Scanner(System.in);
int ms = scan.nextInt();
Manager m = new Manager(ms);
System.out.println(m.getSalary());
int ss = scan.nextInt();
int st = scan.nextInt();
Salesman s = new Salesman(ss,st);
System.out.println(s.getSalary());
int ws = scan.nextInt();
int wd = scan.nextInt();
Worker w = new Worker(ws,wd);
System.out.println(w.getSalary());
}
}
class Employee{
private int salary;
public Employee(int salary)
{
this.salary = salary;
}
public int getSalary()
{
return salary;
}
}
class Manager extends Employee{
//private int salary;
public Manager(int salary)
{
super(salary);
}
public int getSalary()
{
return super.getSalary();
}
}
class Salesman extends Employee{
private int extra;
public Salesman(int salary,int extra)
{
super(salary);
this.extra = extra;
}
public int getSalary()
{
return super.getSalary()+this.extra;
}
}
class Worker extends Employee{
private int day;
public Worker(int salary, int day)
{
super(salary);
this.day = day;
}
public int getSalary()
{
return super.getSalary() * this.day;
}
}