I'm working on a program that demonstrates polymorphism. It asks the user to create an elementary, high school, or college student. Once a student is created, it is stored in an array list. When prompted, the program is suppose to print out each of the student's information.
How do I go about printing this information, and making sure the appropriate printString methods are called?
Main Class:
import java.util.ArrayList;
import java.util.Scanner;
// Student Application
public class StudentApp {
private static ArrayList<Student> students = new ArrayList<Student>();
public static void main(String[] args)
{
String studName, schoolName, teachName, counselor, major, location;
double gpa;
int choice, homeRoom, yearGrad, age;
Scanner derp = new Scanner(System.in);
Student person;
while (true) {
System.out.println("Choose one of the following:");
System.out.println("1. Create an Elementary School Student. \n2. Create a High School Student." +
"\n3. Create a College Student. \n4. Print out all students. \n5. Exit");
choice = derp.nextInt();
if (choice == 1) {
System.out.println("Elementary School Student");
System.out.println("\nName:");
studName = derp.next();
System.out.println("Age:");
age = derp.nextInt();
System.out.println("School Name:");
schoolName = derp.next();
System.out.println("Teacher Name:");
teachName = derp.next();
System.out.println("Homeroom:");
homeRoom = derp.nextInt();
System.out.println("Address:");
location = derp.next();
person = new elementarySchoolStudent(studName, age, location, schoolName, teachName, homeRoom);
students.add(person);
}
if (choice == 2) {
System.out.println("High School Student");
System.out.println("\nName:");
studName = derp.next();
System.out.println("Age:");
age = derp.nextInt();
System.out.println("School Name:");
schoolName = derp.next();
System.out.println("Counselor Name:");
counselor = derp.next();
System.out.println("Year of Graduation:");
yearGrad = derp.nextInt();
System.out.println("GPA:");
gpa = derp.nextDouble();
System.out.println("Address:");
location = derp.next();
person = new highSchoolStudent(studName, age, location, schoolName, counselor, yearGrad, gpa);
students.add(person);
}
if (choice == 3) {
System.out.println("College Student");
System.out.println("\nName:");
studName = derp.next();
System.out.println("Age:");
age = derp.nextInt();
System.out.println("School Name:");
schoolName = derp.next();
System.out.println("Major:");
major = derp.next();
System.out.println("GPA:");
gpa = derp.nextDouble();
System.out.println("Address:");
location = derp.next();
person = new CollegeStudent(studName, age, location, schoolName, major, gpa);
students.add(person);
}
if (choice == 4){
printReport();
}
if (choice == 5) {
System.exit(0);
}
}
}
// print all students in ArrayList by calling the printStudent
public static void printReport()
{
}
// for all students in the ArrayList
// print out the student info using printStudent method
}
Abstract Class:
//abstract student class definition
public abstract class Student{
private String name;
private int age;
private String address;
public Student(String n, int a, String add)
{ name = n; age = a; address = add; }
public String getName(){return name;}
public int getAge(){return age;}
public String getAddress(){return address;}
public abstract String printStudent();
}
Other Classes:
// high school class definition
public class highSchoolStudent extends Student{
private String highSchoolName;
private String counselorName;
private int yearOfGraduation;
private double gpa;
public highSchoolStudent(String n, int a, String add,
String highsch, String counselor,
int year, double g)
{
super(n, a, add);
highSchoolName = highsch;
counselorName = counselor;
yearOfGraduation = year;
gpa = g; }
public String getCounselor(){return counselorName;}
public double getGpa(){return gpa;}
public String getHighSchoolName() {return highSchoolName;}
public int getGraduationYear() {return yearOfGraduation;}
//public String toString(){}
public String printStudent()
{String report = getName() + " Age: " + getAge()+
" Attends: " + highSchoolName + " High School Counselor: " + counselorName +
" Year of Graduation: " + yearOfGraduation +
" GPA: " + gpa;
return report;}
}
Other Classes:
// College student definition
public class CollegeStudent extends Student{
private String collegeName;
private String major;
private double gpa;
public CollegeStudent(String n, int a, String add,
String college, String mjr, double g)
{
super(n, a, add);
collegeName = college;
major = mjr;
gpa = g; }
public String getMajor(){return major;}
public double getGpa(){return gpa;}
public String getCollegeName() {return collegeName;}
//public String toString(){}
public String printStudent()
{
String report = getName() + " Age: " + getAge()+
" Attends: " + collegeName +" Major: " + major +
" GPA: " + gpa;
return report;
}
}
Other Classes:
// elementary school class definition
public class elementarySchoolStudent extends Student{
private String elementarySchoolName;
private String teachersName;
private int homeroom;
public elementarySchoolStudent(String n, int a,
String add, String elemsch, String teacher,
int room)
{
super(n, a, add);
elementarySchoolName = elemsch;
teachersName = teacher;
homeroom = room;}
public String getTeachersName(){return teachersName;}
public String getElemSchoolName() {return elementarySchoolName;}
public int getHomeRoom() {return
homeroom;}
//public String toString(){}
public String printStudent(){
String report = getName() + " Age: " + getAge()+
" Attends: " + elementarySchoolName +
" Homeroom: " + homeroom +
" Teacher: " + teachersName;
return report;}
}