In: Computer Science
Specifications
Sample Output (Your output should be similar to the text in the following box)
| 
 Welcome to my app EMPLOYEE DATA ENTRY Manager or Representative? (m/r): d Invalid selection. Continue? (y/n): y Manager or Representative? (m/r): m First Name: Frank Continue? (y/n): y Manager or Representative? (m/r): r First Name: John Continue? (y/n): n EMPLOYEE INFORMATION Thank you for using my app  | 
Following is the answer:
Employee.java
public class Employee {
    private String firstName;
    private String lastName;
    private String email;
    private int ssn;
    Employee(){}
    Employee(String firstName, String lastName, String email, int ssn){
        this.firstName = firstName;
        this.lastName = lastName;
        this.email = email;
        this.ssn = ssn;
    }
    public String getFirstName() {
        return firstName;
    }
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }
    public String getLastName() {
        return lastName;
    }
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public int getSsn() {
        return ssn;
    }
    public double get_net_income(){
        return 0;
    }
    public void setSsn(int ssn) {
        this.ssn = ssn;
    }
}
Manager.java
public class Manager extends Employee {
    private double expr;
    private double annualSalary;
    Manager(String firstName, String lastName, String email, int ssn, double expr, double annualSalary){
        super(firstName, lastName, email, ssn);
        this.expr = expr;
        this.annualSalary = annualSalary;
    }
    public double getExpr() {
        return expr;
    }
    public void setExpr(double expr) {
        this.expr = expr;
    }
    public double getAnnualSalary() {
        return annualSalary;
    }
    public void setAnnualSalary(double annualSalary) {
        this.annualSalary = annualSalary;
    }
    @Override
    public double get_net_income() {
        double bonus = expr * 1000;
        double grossincome = annualSalary + bonus;
        double tax = grossincome * 0.30;
        return grossincome - tax;
    }
    @Override
    public String toString() {
        return super.getFirstName() + ", "  + super.getLastName() + ", " + super.getEmail() + ", " + super.getSsn() + ", " + this.get_net_income();
    }
}
Representative.java
public class Representative extends Employee {
    private int hours;
    private double payRate;
    Representative(String firstName, String lastName, String email, int ssn, int hours, double payRate){
        super(firstName, lastName, email, ssn);
        this.hours = hours;
        this.payRate = payRate;
    }
    public int getHours() {
        return hours;
    }
    public void setHours(int hours) {
        this.hours = hours;
    }
    public double getPayRate() {
        return payRate;
    }
    public void setPayRate(double payRate) {
        this.payRate = payRate;
    }
    @Override
    public double get_net_income() {
        double gross = hours * 52 * payRate;
        double tax = gross * 0.20;
        return gross-tax;
    }
    @Override
    public String toString() {
        return super.getFirstName() + ", "  + super.getLastName() + ", " + super.getEmail() + ", " + super.getSsn() + ", " + this.get_net_income();
    }
}
Emp.java(main)
import java.util.ArrayList;
import java.util.Scanner;
public class Emp {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Welcome to the app");
        char choice = 0;
        ArrayList<Employee> arr = new ArrayList<Employee>();
        do{
            System.out.println("EMPLOYEE DATA ENTRY");
            char ch;
            System.out.println("Manager or Representative? (m/r): ");
            ch = sc.next().charAt(0);
            if(ch == 'm' || ch == 'r'){
            switch (ch){
                case 'm':
                    System.out.println("First name: ");
                    String firstname = sc.next();
                    System.out.println("Last name: ");
                    String lastname = sc.next();
                    System.out.println("Email:");
                    String email = sc.next();
                    System.out.println("SSN");
                    int ssn = sc.nextInt();
                    System.out.println("Years of Experience: ");
                    int year = sc.nextInt();
                    System.out.println("Annual Salary: ");
                    double salary = sc.nextDouble();
                    Manager m = new Manager(firstname,lastname,email,ssn,year,salary);
                    arr.add(m);
                    break;
                case 'r':
                    System.out.println("First name: ");
                    String firstname1 = sc.next();
                    System.out.println("Last name: ");
                    String lastname1 = sc.next();
                    System.out.println("Email:");
                    String email1 = sc.next();
                    System.out.println("SSN");
                    int ssn1 = sc.nextInt();
                    System.out.println("Weekly Hours of Work: ");
                    int hours = sc.nextInt();
                    System.out.println("Pay Rate: ");
                    double payrate = sc.nextDouble();
                    Representative r = new Representative(firstname1,lastname1,email1,ssn1,hours,payrate);
                    arr.add(r);
                    break;
            }
            }else{
                System.out.println("Invalid selection.");
            }
            System.out.println("Continue? (y/n):");
            choice = sc.next().charAt(0);
        }while (choice == 'y');
        System.out.println("EMPLOYEE INFORMATION");
        for(int i = 0 ; i < arr.size() ; i++){
            System.out.println(arr.get(i).toString());
        }
    }
}
Output:
