
public class WritableUndergraduate extends Student
                                   implements Writable
{
    private int level; //1 for freshman, 2 for sophomore,
                       //3 for junior, or 4 for senior.
                       
    public WritableUndergraduate( )
    {
        super( );
        level = 1;
    }
    
    public WritableUndergraduate(String initialName, 
                    int initialStudentNumber, int initialLevel)
    {
        super(initialName, initialStudentNumber);
        setLevel(initialLevel); //Checks 1 <= initialLevel <= 4
    }
    
    public String toString( )
    {
        return ("Name: " + getName( ) +
                "\nStudent number: " + getStudentNumber( ) +
                "\nLevel: " + getLevel( ));
    }
    
    public void writeOutput( )
    {
        super.writeOutput( );
        System.out.println("Student Level: " + level);
    }
    
    public void reset(String newName, 
                          int newStudentNumber, int newLevel)
    {
        reset(newName, newStudentNumber);
        setLevel(newLevel); //Checks 1 <= newLevel <= 4
    }
    
    public boolean equals(WritableUndergraduate other)
    {
        return (super.equals(other)
             && (this.level == other.level));
    }
    
    public int getLevel( )
    {
        return level;
    }
    
    public void setLevel(int newLevel)
    {
        if ((1 <= newLevel) && (newLevel <= 4))
            level = newLevel;
        else
        {
            System.out.println("Illegal level!");
            System.exit(0);
        }
    }
    
}
