Here is the answer to the first two parts (combined). The new code is given in boldface.
// Person: base class adapted from Weiss's book
public class Person implements Comparable{
private String name; // name of person
private String ssn; // SSN of person
private int age; // age of person
public Person (String n, String s, int a) {
name = n; ssn = s; age = a;
}
public String getName() { return name;}
public String getSsn() { return ssn;}
public int getAge() { return age;}
public String toString() {
return "Name: " + name + ", SSN: " + ssn + ", Age: " + age;
}
// compareTo: the method in Comparable interface
public int compareTo(Object obj) {
return name.compareTo(((Person)obj).name);
}
}
// Employee: class that extends Person
public class Employee extends Person {
private double salary;
public Employee (String n, String ssn, int a, double sal) {
super(n, ssn, a); salary = sal;
}
public double getSalary() { return salary;}
public String toString() {
return super.toString() + ", Salary: " + salary;
}
}
// Faculty: class that extends Employee
public class Faculty extends Employee {
private int courseLoad;
public Faculty (String n, String ssn, int a, double sal, int cl) {
super(n, ssn, a, sal); courseLoad = cl;
}
public double getCouarseLoad() { return courseLoad;}
public String toString() {
return super.toString() + ", Course Load: " + courseLoad;
}
}
// Student: class that extends Person
public class Student extends Person {
private double gpa;
public Student (String n, String ssn, int a, double g) {
super(n, ssn, a); gpa = g;
}
public double getGpa() { return gpa;}
public String toString() {
return super.toString() + ", GPA: " + gpa;
}
}
// Persons: use the classes Person, Student, and Employee
public class Persons {
public static void main(String[] args) {
CompList list = new CompList();
Comparable p;
p = new Person("Williams, John", "534-54-2344", 23);
list.add(p);
p = new Employee("Johnson, Jane", "232-33-3343", 43, 16000.0);
list.add(p);
p = new Student("Wilkins, Jean", "123-89-5688", 19, 3.5);
list.add(p);
p = new Employee("Jacobs, Joe", "112-21-4023", 58, 47000);
list.add(p);
p = new Student("Wilson, James", "003-00-8755", 21, 2.75);
list.add(p);
p = new Faculty("Warner, Joshua", "563-55-5719", 47, 53000, 9);
list.add(p);
while (!list.isEmpty())
System.out.println(list.removeMin());
}
}
Along with List.java and CompList.java from
the CompList class.Here is the output of a run:
Name: Jacobs, Joe, SSN: 112-21-4023, Age: 58, Salary: 47000.0 Name: Johnson, Jane, SSN: 232-33-3343, Age: 43, Salary: 16000.0 Name: Warner, Joshua, SSN: 563-55-5719, Age: 47, Salary: 53000.0, Course Load: 9 Name: Wilkins, Jean, SSN: 123-89-5688, Age: 19, GPA: 3.5 Name: Williams, John, SSN: 534-54-2344, Age: 23 Name: Wilson, James, SSN: 003-00-8755, Age: 21, GPA: 2.75