Design a console application that will print an estate agent property sale commission report. Use

an abstract class named EstateAgent that contains variables to store the estate agent's name and
property price. Create a constructor accepting the estate agent's name and property price as
parameters. In this class, also create get methods to get the estate agent name, property price
and estate agent commission. The agent commission is calculated at 20% of the property sale
price. The EstateAgent class must implement an iEstateAgent interface that contains the
following:
public interface iEstateAgent
{
String getAgentName();
double getPropertyPrice();
double getAgentCommission();
}
Create a subclass called EstateAgentSales that extends the EstateAgent class. The
EstateAgentSales class must contain a constructor to accept the estate agent name and the
property sale amount as parameters. Write code for the printPropertyReport method, which
prints the estate agent name, property sale price and the estate agent commission amount.
Finally, write a RunApplication class to instantiate the EstateAgentSales class.

Sample screenshot:
Enter the current estate agent name: Joe Bloggers
Enter the property price: 1200000

Estate Agent Report
************************
ESTATE AGENT NAME: Joe Bloggers
PROPERTY PRICE: R1200000.0
AGENT COMISSION: R240000.0

in java

1 answer

import java.util.Scanner;

public abstract class EstateAgent implements iEstateAgent {
private String agentName;
private double propertyPrice;

public EstateAgent(String agentName, double propertyPrice) {
this.agentName = agentName;
this.propertyPrice = propertyPrice;
}

@Override
public String getAgentName() {
return agentName;
}

@Override
public double getPropertyPrice() {
return propertyPrice;
}

@Override
public double getAgentCommission() {
return propertyPrice * 0.2;
}
}

public class EstateAgentSales extends EstateAgent {
public EstateAgentSales(String agentName, double propertySaleAmount) {
super(agentName, propertySaleAmount);
}

public void printPropertyReport() {
System.out.println("Estate Agent Report");
System.out.println("************************");
System.out.println("ESTATE AGENT NAME: " + getAgentName());
System.out.println("PROPERTY PRICE: R" + getPropertyPrice());
System.out.println("AGENT COMMISSION: R" + getAgentCommission());
}
}

public class RunApplication {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

System.out.print("Enter the current estate agent name: ");
String agentName = scanner.nextLine();

System.out.print("Enter the property price: ");
double propertyPrice = scanner.nextDouble();

EstateAgentSales estateAgentSales = new EstateAgentSales(agentName, propertyPrice);
estateAgentSales.printPropertyReport();
}
}