/**
 * TestStudent class uses Student, Graduate, and Undergraduate to illustrate
 * Inheritance and Polymorphism
 *
 * CSCE 155 Fall 2005
 *
 * @author Leen-Kiat Soh
 * @version 1.0
 */

class TestStudent {

   public static void main(String[] args)  {

      Student students[] = new Student[100];
      students[0] = new Undergraduate("Love Cohen");
      students[1] = new HighSchool("Foobar Wombat");
      students[2] = new Graduate("Ali Baba");
      students[3] = new Student("Rummy");
      students[4] = new Student("Trout");
      students[5] = new Undergraduate("Bobby Sugrue");

      for (int i = 0; i < 6; i++)  {
         System.out.println(students[i].getName());
         students[i].computeGrade();   // here is the polymorphism!
         System.out.println(students[i].getCourseGrade()); 
	 }

      // here we compute the number of Undergraduate students

      int undergradCount = 0;
      for (int i = 0; i < 6; i++)  {
         if (students[i] instanceof Undergraduate)  {
            undergradCount++;
         }
      }

      System.out.println("The number of undergraduate students is " 
            + undergradCount);



   }

}


