Design and implement the following classes:
a. An abstract base class Employee that represents a generic employee. Include methods to retrieve information about an employee.
b. A subclass of Employee called Hourly Employee that describes an employee who gets paid by the hour. Include a public method called get Pay that returns the pay of the employee for that month and any other relevant methods.
c. A subclass of Employee called Non Hourly Employee that describes an employee who gets paid a fixed salary every month. Include a public method called get Pay that returns the pay of the employee for that month. Include any other relevant methods.