designing and implementing class hierarchies
You have been placed in charge of designing a University Administration System. Old versions were not implemented using an object oriented approach and you have been asked to come up with a prototype class design. Initially all that is required is a hierarchy that satisfies the following criteria:
a) The system contains Lecturers, UnderGradStudents and PostGradStudents.
b) Every Person in the system has a name.
c) The system also holds:
i) whether a Lecturer is at a senior level ‘S’ or a normal level ‘N’.
ii) the student number of each Student
iii) The fee structure of each Student (assume “Full Fee” for PostGradStudent, “HECS” for UnderGradStudent)
iv) A String outlining the previous qualification of a PostGradStudent
v) whether or not an UnderGradStudent wants to be part of the mentorship program (‘Y’ or ‘N’).
All the system is required to do initially is have accessor and mutator methods for each instance field and a toString method. The toString method returns a String that reports all the details relating to that class.
Design and implement what you believe to be the best possible class hierarchy you can for this system.
1. Sketch out a UML style class diagram.
2. Are you going to use abstract classes? Interfaces? Be ready to justify your decisions.
3. Do your best to construct your system. Of course you will need to create a test harness for your program.