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

public abstract class Employee{
	public abstract double ComputerSalary();
	public double basis;
}
public class Manager extends Employee{
	public Manager(double m_basis){
		basis=m_basis;
	}
	public double ComputerSalary(){
		return basis;
	}
	public void show(){
		System.out.println("工资:"+ComputerSalary());	
	}
}
public class worker extends Employee{
	public int days;
	worker(int days,double m_basis){
		this.days=days;
		basis=m_basis;
	}
	public double ComputerSalary(){
		return days*basis;
	}
	public void show(){
		System.out.println("工资:"+ComputerSalary());	
	}
}

import java.util.Scanner;
public class shows{
	public static void main(String args[]){
		double basis;
		int days;
		double commission;
		System.out.print("请输入基本工资:");
		Scanner reader=new Scanner(System.in);
		basis=reader.nextDouble();
		System.out.print("请输入工作天数:");
		days=reader.nextInt();
		System.out.print("请输入销售提成:");
		commission=reader.nextDouble();
		Manager a=new Manager(basis);
		a.show();
		Saleman b=new Saleman(basis,commission);
		b.show();
		worker c=new worker(days,basis);
		c.show(); 
	}
}

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐