(The A Person, Student, Employee, Faculty, and Staff classes) Design a class nam
ID: 640370 • Letter: #
Question
(The APerson, Student, Employee, Faculty, and Staff classes) Design a class named APerson and its two subclasses named Student and Employee. Make Faculty and Staff subclasses of Employee. A person has a name, address, phone number, and email address. A student has a class status (freshman, sophomore, junior, or senior). Define the status as a constant. An employee has an office, salary, and date-hired. Define a class named MyDate that contains the fields year, month, and day. A faculty member has office hours and a rank. A staff member has a title. Override the toString method in each class to display the class name and the person
Explanation / Answer
Class #1 - Person.java:
public class Person {
public String name;
public String address;
public String phone;
public String email;
public Person(String name, String address, String phone, String email) {
this.name = name;
this.address = address;
this.phone = phone;
this.email = email;
}
@Override
public String toString() {
return this.getClass().getName() + " " + name;
}
}
Class #2 - Student.java:
public class Student extends Person {
// capitalize CLASS_STATUS variable is a typical Java convention
// for variables that have been declared as final (aka: constant)
public final String CLASS_STATUS;
public Student(String name, String address, String phone, String email, String classStatus) {
super(name, address, phone, email);
CLASS_STATUS = classStatus;
}
}
Class #3 - Employee.java:
public class Employee extends Person {
public String office;
public double salary;
public Employee(String name, String address, String phone, String email) {
super(name, address, phone, email);
}
}
Class #4 - Faculty.java:
public class Faculty extends Employee {
public String officeHours;
public int rank;
public Faculty(String name, String address, String phone, String email) {
super(name, address, phone, email);
}
}
Class #5 - Staff.java:
public class Staff extends Employee {
public String title;
public Staff(String name, String address, String phone, String email) {
super(name, address, phone, email);
}
}
Class #6 - TestPerson (test program):
public class TestPerson {
public static void main(String[] args) {
Person person = new Person("John Doe", "123 Somewhere", "415-555-1212", "johndoe@somewhere.com");
Person student = new Student("Mary Jane", "555 School Street", "650-555-1212", "mj@abc.com", "junior");
Person employee = new Employee("Tom Jones", "777 B Street", "408-888-9999", "tj@xyz.com");
Person faculty = new Faculty("Jill Johnson", "999 Park Ave", "925-222-3333", "jj@abcxyz.com");
Person staff = new Staff("Jack I. Box", "21 Jump Street", "707-212-1112", "jib@jack.com");
System.out.println(person.toString() + " ");
System.out.println(student.toString() + " ");
System.out.println(employee.toString() + " ");
System.out.println(faculty.toString() + " ");
System.out.println(staff.toString() + " ");
}
}
Output from above TestPerson test class:
Person
John Doe
Student
Mary Jane
Employee
Tom Jones
Faculty
Jill Johnson
Staff
Jack I. Box
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.