Java Reference
In-Depth Information
6
public static
void
main(String[] args)
7
{
8
// create subclass objects
SalariedEmployee salariedEmployee =
new
SalariedEmployee(
"John"
,
"Smith"
,
"111-11-1111"
,
800.00
);
HourlyEmployee hourlyEmployee =
new
HourlyEmployee(
"Karen"
,
"Price"
,
"222-22-2222"
,
16.75
,
40
);
CommissionEmployee commissionEmployee =
new
CommissionEmployee(
"Sue"
,
"Jones"
,
"333-33-3333"
,
10000
,
.06
);
BasePlusCommissionEmployee basePlusCommissionEmployee =
new
BasePlusCommissionEmployee(
"Bob"
,
"Lewis"
,
"444-44-4444"
,
5000
,
.04
,
300
);
9
10
11
12
13
14
15
16
17
18
19
20
System.out.println(
"Employees processed individually:"
);
21
22
System.out.printf(
"%n%s%n%s: $%,.2f%n%n"
,
23
salariedEmployee,
"earned"
, salariedEmployee.earnings());
24
System.out.printf(
"%s%n%s: $%,.2f%n%n"
,
25
hourlyEmployee,
"earned"
, hourlyEmployee.earnings());
26
System.out.printf(
"%s%n%s: $%,.2f%n%n"
,
27
commissionEmployee,
"earned"
, commissionEmployee.earnings());
28
System.out.printf(
"%s%n%s: $%,.2f%n%n"
,
29
basePlusCommissionEmployee,
30
"earned"
, basePlusCommissionEmployee.earnings());
31
32
// create four-element Employee array
33
Employee[] employees =
new
Employee[
4
];
34
35
// initialize array with Employees
employees[
0
] = salariedEmployee;
employees[
1
] = hourlyEmployee;
employees[
2
] = commissionEmployee;
employees[
3
] = basePlusCommissionEmployee;
36
37
38
39
40
41
System.out.printf(
"Employees processed polymorphically:%n%n"
);
42
43
// generically process each element in array employees
44
for
(Employee currentEmployee : employees)
45
{
46
System.out.println(
currentEmployee
);
// invokes toString
47
48
// determine whether element is a BasePlusCommissionEmployee
49
if
currentEmployee
instanceof
BasePlusCommissionEmployee
()
50
{
51
// downcast Employee reference to
52
// BasePlusCommissionEmployee reference
53
BasePlusCommissionEmployee employee =
54
(BasePlusCommissionEmployee) currentEmployee
;
55
56
employee.setBaseSalary(
1.10
* employee.getBaseSalary());
57
Fig. 10.9
|
Employee
hierarchy test program. (Part 2 of 4.)