Create a program with the following OO structure – you do not have to implement any of the methods other than constructors to fill in some default data. You should implement the rest of the methods with a Console.WriteLine to indicate that it has been called.
Within a UNIVERSITY there are 4 DEPARTMENTS
MATH, ENGLISH, GEOGRAPHY, COMPUTERSCIENCE
Each DEPARTMENT has up to 10 STAFF
There is a DEAN, PROFESSORs, ADMINISTRATORs and RESEARCHERs
All Staff should have a name and salary
Professors should have a Class
Researchers should have a ResearchSpeciality which is a fixed set of research areas represented by an enumeration
Deans, Professors and Researchers should implement an ITeachable interface which contains the Teach() method
Deans and Administrators should implement an IAdmin interface which contains the Administrate() method
Pay special attention to the IS-A relationships and the HAS-A relationships and implement things correctly.
You should determine reasonable types for all properties not otherwise specified and initialise things with sensible defaults. Your constructors should have reasonable parameters to set up the type where you cannot simply use constants.
var u = new University();
u.Department.Staff = new Researcher(“Andy”);
You should create additional test code to make sure that all of the properties and methods are available