Ví dụ có interface Employee và 2 class hiện thực là HourlyEmployee - nhân viên làm theo giờ và RegularEmployee - nhân viên lãnh lương tháng.
interface Employee {
double earnings();
}
public class HourlyEmployee implements Employee {
private double salaryPerHour;
private String name;
public HourlyEmployee(double salaryPerHour, String name) {
super();
this.salaryPerHour = salaryPerHour;
this.name = name;
}
public double earnings() {
// TODO Auto-generated method stub
return 40*salaryPerHour;
}
public String toString() {
return name;
}
}
public class HourlyEmployee implements Employee {
private double salaryPerHour;
private String name;
public HourlyEmployee(double salaryPerHour, String name) {
super();
this.salaryPerHour = salaryPerHour;
this.name = name;
}
public double earnings() {
return 40*salaryPerHour;
}
public String toString() {
return name;
}
}
Sử dụng pattern này:
public static void main(String[] args)
{
List
list.add(new HourlyEmployee(30, "Petter"));
list.add(new RegularEmployee(20000000, "Mary"));
Iterator itr = list.iterator();
while(itr.hasNext())
{
Employee em = (Employee)itr.next();
System.out.println(em + " earns "+em.earnings());
}
}
No comments:
Post a Comment