The objective of this programming assignment is to experience
the use of inheritance in Java and to see how polymorphism works
with inheritance in Java.
Problem Description: The base class is an Employee class which
should contain a couple of attributes common to all employees and a
fundamental method to calculate pay. The two derived classes are a
CommisionEmployee class, which adds payment of a sales commission
as part of the pay calculation, and a UnionEmployee class, which
adds overtime payment and union dues as part of the pay
calculation. The TestEmployees class will be a program (i.e., a
class that contains a main () method) which will include a method
that accepts an Employee base class reference and demonstrates
polymorphic behavior.
The details of the three classes to be implemented are as
follows:
1. Employee: An Employee class contains a name, a department
where the employee works, and an hourly rate of pay. An explicit
value constructor should be provided to set all three values when
an Employee object is created. There should be mutator methods to
set the values of the department and the pay rate. There should be
one accessor method which returns a string containing the name and
the department in which the employee works. Finally, there should
be a weekly pay method that takes an integer parameter for the
number of hours worked and returns the weekly pay. If the number of
hours worked is less than 40 hours, the pay is the number of hours
times the rate. If the number of hours worked is 40 or more, the
pay is 40 times the rate.
2. UnionEmployee: The Union Employee class inherits from the
Employee class. A Union Employee contains a dues variable which
holds the amount of dues a Union Employee has withheld from their
paycheck each week. An explicit value constructor should be
provided to set all three values from the base class along with the
dues value. There should be a mutator method provided to set the
dues variable. The base class weekly pay method should be
overridden because a Union Employee gets 1.5 times the rate for any
hours over 40 per week. This method should use the base class
method to calculate pay for first 40 hours and then add the
overtime amount. Also the weekly pay is reduced by the amount of
dues withheld.
3. CommisionEmployee: The Commission Employee class inherits
from the Employee class. A Commission Employee contains a
commission rate and a sales amount variable which are used as part
of the pay calculation. An explicit value constructor should be
provided to set all 3 values of the base class along with the
commission rate variable. There should be mutator methods for the
commission rate and the sales amount. The base class weekly pay
method should be overridden because the Commission Employee gets
the base employee pay plus the commission rate times the sales
amount. This method should use the base class weekly pay method to
calculate the hourly part of the pay.
4. TestEmployees: The test employees program needs to create a
Union Employee object and a Commission Employee object. The test
program must contain a display method which takes a base class
Employee object reference along with the number of hours worked by
the employee. The display method should use the base class method
to get the employee name and department info and output that
information. The display method should also use the base class
method to get the weekly pay info for the employee object and
display that information. The test program should pass the Union
Employee object and the Commission Employee object to the display
method along with the number of hours each employee has worked. It
should test the payroll calculation for the number of hours worked
to be less than 40, 40, and greater than 40 hours for each employee
type. The output seen should demonstrate polymorphic behavior, that
is the base class Employee reference to a Union Employee object
elicits Union Employee pay calculations, and the base class
Employee reference to a Commission Employee elicits Commission
Employee payroll calculations.
Sample run:
Displaying Union Employee
Number of Hours:20
Name:UnionEmp1
Department:UnionDept1
Weekly Pay:2000.0
Number of Hours:40
Name:UnionEmp1
Department:UnionDept1
Weekly Pay:4000.0
Number of Hours:60
Name:UnionEmp1
Department:UnionDept1
Weekly Pay:3980.0
Displaying Commissioned Employee
Name:CommissionEmp2
Number of Hours:20
Department:Commission Dept2
Weekly Pay:102800.0
Name:CommissionEmp2
Department:Commission Dept2
Number of Hours:40
Weekly Pay:104800.0
Name:CommissionEmp2
Department:Commission Dept2
Number of Hours:60
Weekly Pay:104800.0
The objective of this programming assignment is to experience the use of inheritance in Java and to see how polymorphism
-
- Site Admin
- Posts: 899603
- Joined: Mon Aug 02, 2021 8:13 am