Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

mplement a superclass Person . Make two classes, Student and Instructor , that i

ID: 3910227 • Letter: M

Question

mplement a superclass

Person

. Make two classes,

Student

and

Instructor

, that inherit

from

Person

. A person has a name (type String) and a year of birth (type String). A

student has a major (type String), and an instructor has a salary (type double). Write the

class definitions and the constructors for all classes. Overwrite the

toString()

method for

each class to display the person’s name, person’s birth year, student major (only for the

Student object), and instructor salary (only for the Instructor object).

Supply a test program -

PersonTest

- that creates three objects: a person, a student, and

an instructor, and then invokes their toString() methods. Following is a sample run:

Person Name: John Doe

Person Birth Year: 1960

Person Name: Jane Doe

Person Birth Year: 2007

Student Major: Finance

Person Name: John Smith

Person Birth Year: 1970

Instructor Salary: $50,000.00

Explanation / Answer

PersonTest.java

import java.util.Scanner;

public class PersonTest {

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);

System.out.println("Enter Person Name: ");

String student_name = scan.nextLine();

System.out.println("Enter Person year of birth: ");

int student_yearOfBirth = scan.nextInt();

Person p = new Person(student_name, student_yearOfBirth);

scan.nextLine();

System.out.println("Enter Student Name: ");

student_name = scan.nextLine();

System.out.println("Enter Student year of birth: ");

student_yearOfBirth = scan.nextInt();

scan.nextLine();

System.out.println("Enter Student Major: ");

String student_major = scan.nextLine();

Student s = new Student(student_name, student_yearOfBirth, student_major);

System.out.println("Enter Instructor Name: ");

String instructor_name = scan.nextLine();

System.out.println("Enter Instructor year of birth: ");

int instructor_yearOfBirth = scan.nextInt();

System.out.println("Enter Instructor Salary: ");

int instructor_salary = scan.nextInt();

Instructor i = new Instructor(instructor_name, instructor_yearOfBirth, instructor_salary);

System.out.println(p);

System.out.println(s.toString());

System.out.println(i.toString());

}

}

Person.java

public class Person {

private String name;

private int yearOfBirth;

public Person(String name, int yearOfBirth){

this.name = name;

this.yearOfBirth = yearOfBirth;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getYearOfBirth() {

return yearOfBirth;

}

public void setYearOfBirth(int yearOfBirth) {

this.yearOfBirth = yearOfBirth;

}

public String toString(){

return "Person Name: "+getName()+" Person Birth Year: "+getYearOfBirth();

}

}

Student.java

public class Student extends Person{

private String major;

public Student(String name, int yearOfBirth, String major){

super(name, yearOfBirth);

this.major = major;

}

public String getMajor() {

return major;

}

public void setMajor(String major) {

this.major = major;

}

public String toString(){

return super.toString()+" Student Major: "+getMajor();

}

}

Instructor.java

public class Instructor extends Person{

private int salary;

public Instructor(String name, int yearOfBirth, int salary){

super(name, yearOfBirth);

this.salary = salary;

}

public int getSalary() {

return salary;

}

public void setSalary(int salary) {

this.salary = salary;

}

public String toString(){

return super.toString()+" Instructor Salary: $"+getSalary();

}

}

Output:

Enter Person Name:
John Doe
Enter Person year of birth:
1960
Enter Student Name:
Jane Doe
Enter Student year of birth:
2007
Enter Student Major:
Finance
Enter Instructor Name:
John Smith
Enter Instructor year of birth:
1970
Enter Instructor Salary:
50000
Person Name: John Doe
Person Birth Year: 1960
Person Name: Jane Doe
Person Birth Year: 2007
Student Major: Finance
Person Name: John Smith
Person Birth Year: 1970
Instructor Salary: $50000