package cola;
public class colaEmployee {
String name;
int month;
public colaEmployee() {
}
public colaEmployee(String name, int month) {
super();
this.name = name;
this.month = month;
}
public double getSalary(int month) {
return 0;
}
}
package
cola;
public
class
SalariedEmployee
extends
ColaEmployee {
double
monSalary;
public
SalariedEmployee(String name,
int
month,
double
monSalary) {
super
(name, month);
this
.monSalary = monSalary;
}
public
double
getSalary(
int
month) {
if
(
super
.month == month) {
return
monSalary +
100
;
}
else
{
return
monSalary;
}
}
}
package
cola;
public
class
HourlyEmployee
extends
ColaEmployee {
private
int
hourSalary;
private
int
hourNum;
public
HourlyEmployee(String name,
int
month,
int
hourSalary,
int
hourNum) {
super
(name, month);
this
.hourSalary = hourSalary;
this
.hourNum = hourNum;
}
public
double
getSalary(
int
month) {
if
(
super
.month == month) {
if
(hourNum >
160
) {
return
hourSalary *
160
+ hourSalary * (hourNum -
160
) *
1.5
+
100
;
}
else
{
return
hourSalary * hourNum +
100
;
}
}
else
{
if
(hourNum >
160
) {
return
hourSalary *
160
+ hourSalary * (hourNum -
160
) *
1.5
;
}
else
{
return
hourSalary * hourNum;
}
}
}
}
package
cola;
public
class
SalesEmployee
extends
ColaEmployee {
private
int
monthSales;
private
double
royaltyRate;
public
SalesEmployee(String name,
int
month,
int
monthSales,
double
royaltyRate) {
super
(name, month);
this
.monthSales = monthSales;
this
.royaltyRate = royaltyRate;
}
public
double
getSalary(
int
month) {
if
(
super
.month == month) {
return
monthSales * royaltyRate +
100
;
}
else
{
return
monthSales * royaltyRate;
}
}
}
package
demoa11_2tenthweek_Thursday;
public
class
Company {
public
void
getSalary(ColaEmployee c,
int
month) {
System.out.println(c.name +
"在"
+ month +
"月的月薪为"
+ c.getSalary(month)+
"元"
);
}
}
package
cola;
public
class
TestCompany {
public
static
void
main(String[] args) {
ColaEmployee[] all = {
new
SalariedEmployee(
"张三"
,
5
,
30000
),
new
HourlyEmployee(
"李四"
,
5
,
100
,
300
),
new
SalesEmployee(
"王五"
,
3
,
7000000
,
0.3
)
};
for
(
int
i =
0
; i < all.length; i++) {
new
Company().getSalary(all[i],
5
);
}
}
}