Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Extend the SalariedEmployee class in the slides to define a new class, SalariedC

ID: 3692906 • Letter: E

Question

Extend the SalariedEmployee class in the slides to define a new class, SalariedComissionTravelEmployee class, the earnings are calculated based on salary, commission and weekly travel reimbursement. Override the toString method and earnings method.

employee.java

public abstract class Employee {

private final String firstName;
private final String lastName;
private final String socialSecurityNumber;

// constructor
public Employee(String firstName, String lastName,
String socialSecurityNumber) {
this.firstName = firstName;
this.lastName = lastName;
this.socialSecurityNumber = socialSecurityNumber;
}

// return first name
public String getFirstName() {
return firstName;
}

// return last name
public String getLastName() {
return lastName;
}

// return social security number
public String getSocialSecurityNumber() {
return socialSecurityNumber;
}

// return String representation of Employee object
@Override
public String toString() {
return String.format("%s %s%nsocial security number: %s",
getFirstName(), getLastName(), getSocialSecurityNumber());
}
// abstract method must be overridden by concrete subclasses

public abstract double earnings(); // no implementation here
}

SalariedEmployee.java

public class SalariedEmployee extends Employee
{
private double weeklySalary;

// constructor
public SalariedEmployee(String firstName, String lastName,
String socialSecurityNumber, double weeklySalary)
{
super(firstName, lastName, socialSecurityNumber);

if (weeklySalary < 0.0)
throw new IllegalArgumentException(
"Weekly salary must be >= 0.0");

this.weeklySalary = weeklySalary;
}

// set salary
public void setWeeklySalary(double weeklySalary)
{
if (weeklySalary < 0.0)
throw new IllegalArgumentException(
"Weekly salary must be >= 0.0");

this.weeklySalary = weeklySalary;
}

// return salary
public double getWeeklySalary()
{
return weeklySalary;
}

// calculate earnings; override abstract method earnings in Employee
@Override
public double earnings()
{
return getWeeklySalary();
}
// return String representation of SalariedEmployee object
@Override
public String toString()
{
return String.format("salaried employee: %s%n%s: $%,.2f",
super.toString(), "weekly salary", getWeeklySalary());
}

}

Explanation / Answer

Hi, As per your requirement SalariedComissionTravelEmployee class implemented and overrided earnings and toString methods. Highlighted below these methods.

SalariedComissionTravelEmployee.java


public class SalariedComissionTravelEmployee extends SalariedEmployee {
   private double salary;
   private double commission;
   public SalariedComissionTravelEmployee(String firstName, String lastName,
           String socialSecurityNumber, double weeklySalary, double salary, double commission) {
       super(firstName, lastName, socialSecurityNumber, weeklySalary);
       this.salary = salary;
       this.commission = commission;
       // TODO Auto-generated constructor stub
   }

   // calculate earnings; override abstract method earnings in Employee
   @Override
   public double earnings()
   {
   return salary + commission+ getWeeklySalary();
   }
   // return String representation of SalariedComissionTravelEmployee object
   @Override
   public String toString()
   {
   return String.format("SalariedComissionTravelEmployee: %s%n%s: $%,.2f",
   super.toString(), "Salary", earnings());
   }

}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Chat Now And Get Quote