So i have 3 classes, and one that runs all the code. A student class, a Graduate student class and an undergraduate class, and a class called lab 4 that runs the code. The code asks for how many grad students and how many undergrad students there are, then asks the user to input all the information for that number of each. After all the info is inputed, the under grad or grad student objects are added to an array list of students. after all the students are added, then prints all the information. However when i input all the information, the array does not print, the program terminates. How do i get the array to print out? 

Code: 

Lab 4: creates the student objects, array list, adds them to the array, and the prints all information for objects added to the array list

```
import java.util.ArrayList;
import java.util.Scanner;

public class Lab04 {

public static void main(String[] args) {
    ArrayList <Student> studentList = new ArrayList <Student>();

    Scanner s = new Scanner(System.in);
    System.out.println("How many Graduate Students do you want to store?");
    int numOfStudents = s.nextInt();
    s.nextLine();
    for (int i = 0; i < numOfStudents; i++) {
        System.out.println("What is the student's name?");
        String name = s.nextLine();
        System.out.println("What is the student's GPA?");
        double GPA = s.nextDouble();
        s.nextLine();
        System.out.println("What is the student's ID?");
        String ID = s.nextLine();
        System.out.println("What is the student's High School?");
        String highSchool = s.nextLine();
        System.out.println("What is the student's graduate major?");
        String gradMajor = s.nextLine();
        System.out.println("What is the student's undergraduate major?");
        String underMajor = s.nextLine();
        System.out.println("What is the student's undergradute school? ");
        String underSchool = s.nextLine();
        GraduateStudent gradStu = new GraduateStudent(name, GPA, ID, highSchool, gradMajor, underMajor,
                underSchool);
        studentList.add(gradStu);
    }
    System.out.println("How many UnderGraduate students are there?");
    int numOfUnder = s.nextInt();
    s.nextLine();
    for (int j = 0; j < numOfUnder; j++) {
        System.out.println("What is the student's name?");
        String name = s.nextLine();
        System.out.println("What is the student's GPA?");
        double GPA = s.nextDouble();
        s.nextLine();
        System.out.println("What is the student's ID?");
        String ID = s.nextLine();
        System.out.println("What is the student's High School?");
        String highSchool = s.nextLine();
        System.out.println("What is the student's major?");
        String major = s.nextLine();
        System.out.println("What the student's minor?");
        String minor = s.nextLine();
        UnderGraduate UnderGrad = new UnderGraduate(name, GPA, ID, highSchool, major, minor);
        studentList.add(UnderGrad);
    }
    for (int j = 0; j < studentList.size(); j++) {
        (studentList.get(j)).getStudentInformation();
    }
}

```

}

Student Class: 

```
public class Student {

private String name;
private double gpa;
private String id;
private String highSchool;
//private String major;
//private String minor;

public Student() {
    name = "";
    gpa = 0.0;
    id = "";
    highSchool = "";
    //major = "";
    //minor = "";
}
public Student(String name, double gpa, String id, String highSchool){
    this.name = name;
    this.gpa = gpa;
    this.id = id;
    this.highSchool = highSchool;

}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public double getGpa() {
    return gpa;
}

public void setGpa(double gpa) {
    this.gpa = gpa;
}

public String getId() {
    return id;
}

public void setId(String id) {
    this.id = id;
}

public String getHighSchool() {
    return highSchool;
}

public void setHighSchool(String highSchool) {
    this.highSchool = highSchool;
}

public String getStudentInformation() {
    String result = "Name: " + name + " GPA: " + gpa + " ID: " + id
            + " High School: " + highSchool;
    return result;
}

}

```

graduate Class: 

```
public class GraduateStudent extends Student {

private String gradMajor;
private String underMajor;
private String underSchool;

public GraduateStudent(String name, double gpa, String id, String highSchool,
        String gradMajor, String underMajor, String underSchool) {
super(name, gpa, id, highSchool);
this.gradMajor = gradMajor;
this.underMajor = underMajor;
this.underSchool = underSchool;
}
public String getGradMajor() {
    return gradMajor;
}

public void setGradMajor(String gradMajor) {
    this.gradMajor = gradMajor;
}

public String getUnderMajor() {
    return underMajor;
}

public void setUnderMajor(String underMajor) {
    this.underMajor = underMajor;
}
public String getUnderSchool() {
    return underSchool;
}

public void setUnderSchool(String underSchool) {
    this.underSchool = underSchool;
}

@Override
public String getStudentInformation() {
    String result = super.getStudentInformation()+
            "Graduate Major: " + gradMajor + "Undergraduate Major: " + underMajor +
            "Undergraduate School: " + underSchool;
    return result;
}
}

```