Java Reference
In-Depth Information
1
// Fig. 10.5: SalariedEmployee.java
2
// SalariedEmployee concrete class extends abstract class Employee.
3
4
public class
SalariedEmployee
extends
Employee
5
{
6
private double
weeklySalary;
7
8
// constructor
9
public
SalariedEmployee(String firstName, String lastName,
10
String socialSecurityNumber,
double
weeklySalary)
11
{
12
super
(firstName, lastName, socialSecurityNumber);
13
14
if
(weeklySalary <
0.0
)
15
throw new
IllegalArgumentException(
16
"Weekly salary must be >= 0.0"
);
17
18
this
.weeklySalary = weeklySalary;
19
}
20
21
// set salary
22
public void
setWeeklySalary(
double
weeklySalary)
23
{
24
if
(weeklySalary <
0.0
)
25
throw new
IllegalArgumentException(
26
"Weekly salary must be >= 0.0"
);
27
28
this
.weeklySalary = weeklySalary;
29
}
30
31
// return salary
32
public double
getWeeklySalary()
33
{
34
return
weeklySalary;
35
}
36
37
// calculate earnings; override abstract method earnings in Employee
@Override
public double
earnings()
{
return
getWeeklySalary();
}
38
39
40
41
42
43
44
// return String representation of SalariedEmployee object
@Override
public
String toString()
{
return
String.format(
"salaried employee: %s%n%s: $%,.2f"
,
super
.toString(),
"weekly salary"
, getWeeklySalary());
}
45
46
47
48
49
50
51
}
// end class SalariedEmployee
Fig. 10.5
|
SalariedEmployee
concrete class extends
abstract
class
Employee
.