(The Person, Student, Employee, Faculty, and Staff classes) Design a class named
ID: 3864207 • Letter: #
Question
(The Person, Student, Employee, Faculty, and Staff classes) Design a class named Person and its two subclasses named Student and Employee. Make Faculty and Staff subclasses of Employee. A person has a name, and address. A student has a class status(freshman, sophomore, junior, or senior). Define the status as a constant. An employee has an office, and salary. A faculty member has office hours. A staff member has a title. Override the toString method in each class to display the class name and available information of the person. Draw the UML diagram for the classes. Implement the classes. Write a test program, in which instantiate a research team consisting of two students, one faculty, and one staff. Declare the team as an ArrayList, and use polymorphism concept to print out the information on the whole team.Explanation / Answer
Person.java
public class Person {
// Declaring variables
private String name, address;
// Zero Argument Constructor
public Person() {
super();
}
public Person(String name, String address) {
super();
this.name = name;
this.address = address;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "Person name=" + name + ", address=" + address ;
}
}
_______________
Student.java
public class Student extends Person {
private final String classStatus;
public Student(String classStatus) {
this.classStatus = classStatus;
}
public Student(String name, String address, String classStatus) {
super(name, address);
this.classStatus = classStatus;
}
public String toString() {
return super.toString() + " Student " + this.classStatus;
}
}
_________________
Employee.java
public class Employee extends Person {
// Declaring variables
private String office;
private double salary;
// Zero Argument Constructor
public Employee() {
super();
}
// Parameterized constructor.
public Employee(String name, String address, String office, double salary) {
super(name, address);
this.office = office;
this.salary = salary;
}
// Setters and getters
public String getOffice() {
return office;
}
public void setOffice(String office) {
this.office = office;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
// toString() method displays the contents of the object.
@Override
public String toString() {
return super.toString() + " office=" + office + ", salary=" + salary;
}
}
___________________
Staff.java
public class Staff extends Employee {
//Declaring variables
private String title;
//Zero Argument Constructor
public Staff() {
super();
}
//Parameterized constructor.
public Staff(String name, String address,String office, double salary,String title) {
super(name,address,office,salary);
this.title = title;
}
//Setters and getters
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
//toString() method displays the contents of the object.
@Override
public String toString() {
return super.toString()+" Title=" + title;
}
}
_________________
Faculty.java
public class Faculty extends Employee {
//Declaring variables
private int office_hours;
//Zero Argument Constructor
public Faculty() {
super();
}
//Parameterized constructor.
public Faculty(String name, String address, String office, double salary,int office_hours) {
super(name,address,office,salary);
this.office_hours = office_hours;
}
//Setters and getters
public int getOffice_hours() {
return office_hours;
}
public void setOffice_hours(int office_hours) {
this.office_hours = office_hours;
}
//toString() method displays the contents of the object.
@Override
public String toString() {
return super.toString()+" office_hours=" + office_hours ;
}
}
____________________
Driver.java
import java.util.ArrayList;
public class Driver {
public static void main(String[] args) {
/*
//Creating the object of Employee Class
Person person=new Person("Kane","101 Church Street","kane@gamil.com",991234568);
//Displaying the Person Details
System.out.println(person.toString());
//Creating the object of Student Class
Student s=new Student(0) ;
//Displaying the Student Details
System.out.println(s.toString());
//Creating the date Class Object
MyDate d=new MyDate(2016, 06, 31);
//Creating the object of Employee Class
Employee emp=new Employee("WIPRO", 50000, d);
//Displaying the Employee Details
System.out.println(emp.toString());
//Creating the object of Faculty Class
Faculty faculty=new Faculty(8, "Professor");
//Displaying the Faculty Details
System.out.println(faculty.toString());
Staff staff=new Staff("Engineer");
System.out.println(staff.toString());
*/
ArrayList<Person> al=new ArrayList<Person>();
al.add(new Student("James","101 Church Street","Sophomore"));
al.add(new Student("Pattinson","44 That Street","Junior"));
al.add(new Faculty("Williams","500 Over There Street","Accenture",50000,8));
al.add(new Staff("Williams","867 Hay Street","Microsoft",80000,"Janitor"));
for(int i=0;i<al.size();i++)
{
System.out.println(" "+al.get(i).toString());
}
}
}
____________________
Output:
Person name=James, address=101 Church Street Student Sophomore
Person name=Pattinson, address=44 That Street Student Junior
Person name=Williams, address=500 Over There Street office=Accenture, salary=50000.0 office_hours=8
Person name=Williams, address=867 Hay Street office=Microsoft, salary=80000.0 Title=Janitor
___________Thank You
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.