/**
 * Student class works in tandem with Graduate and Undergraduate classes to
 * demonstrate Inheritance and Polymorphism.  It works with TestStudent.java
 * too.
 *
 * CSCE 155 Fall 2005
 *
 * Please run TestStudent and understand how methods and data members are
 * inherited in a subclass.
 *
 * @author Leen-Kiat Soh
 * @version 1.0
 */

abstract class Student {

   protected final static int NUM_OF_TESTS = 3;   // common
   protected String name;                         // common
   protected int[] tests;                         // common
   protected String courseGrade;                  // common
   protected String major;                        // common
//  private String minor;
//  private String advisor;

   public Student()  {

      this("NO_NAME");
      System.out.println("Inside Student's constructor()");

   }

   public Student(String studentName) {

      name = studentName;
      tests = new int[NUM_OF_TESTS];
      courseGrade = "**";
      major = "UNKNOWN";
      System.out.println("Inside Student's constructor(String arg)");

   }

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

   public String getName()  {
      return "Hello, hola " + name;
   }

   public void setCourseGrade(String grade)  {
      this.courseGrade = grade;
   }

   public String getCourseGrade()  {
      return courseGrade;
   }

   public void setMajor(String major)  {
      this.major = major;
   }

   public String getMajor()  {
      return major;
   }


   abstract public void computeCourseGrade();
   
}



