Programming Worksheet-SDSU .

Programming Assignment #4: classes, composition, subclasses, inheritance, polymorphism.
1. Write the code for  the following classes
(All attributes in all classes must be private)
Emp (short for Employee)
The class Emp has 3 subclasses: 1. SalEmp (short for Salaried Employe), 2. HourlyEmp,
3. CommEmp (short for commission employee).
The class CommEmp has one subclass, BpCommEmp (short for base plus commission
Employee).
There is also a BusinessCar class
Class Emp
Attributes: empName, minSalary (short for minimum salary)
Methods: besides the usual methods (constructor, getters, setters, as needed), the class Emp has the
following 2 methods:
earnings(), which returns minSalary
displayInfo(), which displays name and minSalary
class SalEmp
Attribute: monthlySalary
Methods: besides the usual methods (constructor, getters, setters, as needed), the class EmpSal
has the following 2 methods:
earnings(), which returns the greater of minSalary and monthlySalary
displayInfo(), which displays name, monthlySalary,  earnings()
class HourlyEmp
Attribute: hours, rate
Methods: besides the usual methods (constructor, getters, setters, as needed), the class EmpSal
has the following 2 methods:
earnings(), which returns the greater of minSalary and hours*rate
displayInfo(), which displays name, hours, rate ,  earnings()
class CommEmp
Attribute: sales, rate
Methods: besides the usual methods (constructor, getters, setters, as needed), the class EmpSal
has the following 2 methods:
earnings(), which returns the greater of minSalary and sales*rate
displayInfo(), which displays name, sales, rate ,  earnings()
class BpCommEmp
Attribute: baseSalary, car (car is a  BusinessCar object )
Methods: besides the usual methods (constructor, getters, setters, as needed), the class EmpSal
has the following 2 methods:
earnings(), which returns sales*rate+ baseSalary
displayInfo(), which displays name, sales, rate ,  earnings(), car info
class BusinessCar
attributes: make,  model, year
methods: as needed
2. Instantiate the following objects (in main()) and display the information for all objects, using the
method dispayInfo()  (car info to be provided via displayInfo())
Class Emp   (empName,minSalary)
Adele   1500
Burt  1500
SalEmp (empName,monthlySalary, minSalary)
Carol  2000   1200
Diane  2000  1200
HourlyEmp (empName,hours, rate, minSalary)
Fonda 200 15  1000
CommEmp  (empName,sales, rate, minSalary)
Doug  200000  0.10  1000
BpCommEmp (empName, sales, rate, baseSalary, car)
Grace 300000 0.2   1500  car: Toyota  Lexus 2015
Mike 200000 0.2   3000 car: Toyota  Camry 2015
3. (extra credit) Polymorphism
a. Display the information for all employees using polymorphism
b. increase the baseSalary of BpCommEmp by 10%
Deliverables. Upload to Canvas:
The program (as  py files): all classes, and main() file
The output of program execution for questions 2 and 3 (extra credit for question 3)