In: Computer Science
Fill in the classes to represent salaried and hourly employees. Salaried employees are paid for forty hours no matter how much they actually work. Hourly employees are paid their hourly rate up to forty hours of work, and 1.5 times their normal rate for overtime.
Employee.java
public abstract class Employee {
protected double payRate;
public Employee(double payRate) {
this.payRate = payRate;
}
abstract public double computePay(double hours);
}
HourlyEmployee.java
public class HourlyEmployee extends Employee {
public HourlyEmployee(double payRate) {
}
public double computePay(double hours) {
return 0;
}
}
SalariedEmployee.java
public class SalariedEmployee extends Employee {
public SalariedEmployee(double payRate) {
}
public double computePay(double hours) {
return 0;
}
}
Employee
//Abstract class Employee
public abstract class Employee
{
//Instance variable
protected double payRate;
//Constructor
public Employee(double payRate)
{
//Initializing instance variable from value received as argument
this.payRate = payRate;
}
//Abstract method to compute pay of Employee
abstract public double computePay(double hours);
}
SalariedEmployee
//Class SalariedEmployee derived from base class Employee
public class SalariedEmployee extends Employee
{
//Constructor
public SalariedEmployee(double payRate)
{
//Calling base class constructor
super(payRate);
}
//Overridden method to compute pay
@Override
public double computePay(double hours)
{
//Returning pay for default 40 hours
return 40 * this.payRate;
}
}
HourlyEmployee
//Class HourlyEmployee derived from base class Employee
public class HourlyEmployee extends Employee
{
//Constructor
public HourlyEmployee(double payRate)
{
//Calling base class constructor
super(payRate);
}
//Overridden method to compute pay
@Override
public double computePay(double hours)
{
//Checking whether hours is greater than 40 or not
if(hours <= 40)
//Returning pay when hours less than or equal to 40
return hours * this.payRate;
else
//Returning pay when hours greater than 40
return (40*this.payRate) + ((hours-40)*this.payRate*1.5);
}
}
Since, only these three classes are asked to fill, there won't be any output for this