泛型基础知识
泛型增加可读性和稳定性,如果说继承实现了子类型的多态的话,那么泛型则是实现了参数的多态,两者都是抽象机制的重要组成部分,两者能够在一定程度上相互替代,编译器会帮助你检查类型,保证类型安全。继承和泛型是两种方向上的重用技术,继承提供的是类型的纵向扩展,而泛型提供的是类型的横向抽象。两种技术都能够提供优秀的重用性。
在JDK1.4时,只能用继承,可以覆写接口或父类的方法,但注意如果覆写这些方法,必须按照接口或者父类的方法写(不论是参数类型系列,还是返回类型都必须和接口或父类保持完全一致),这样就限制了我们的发挥,呵呵!还是举个例子吧!
public interface Employee {
public String getName();
}
// Employee接口实现类1
public class EmployeeImpl implements Employee{
public String getName()
{
return "employee";
}
}
// Employee接口实现类2
public class DepartmentLeader implements Employee{
public String getName()
{
return "leader";
}
}
//Employee工厂接口
public interface EmployeeFactory {
public Employee CreateEmployee(String employeeType);
}
//Employee工厂接口实现类
public class EmployeeFactoryImpl implements EmployeeFactory{
public Employee CreateEmployee(String employeeType)
{
Employee employee = null;
if(employeeType.equalsIgnoreCase("employee"))
{
employee = new EmployeeImpl();
}
else if(employeeType.equalsIgnoreCase("employee"))
{
employee = new DepartmentLeader();
}
return employee;
}
}
public String getName();
}
// Employee接口实现类1
public class EmployeeImpl implements Employee{
public String getName()
{
return "employee";
}
}
// Employee接口实现类2
public class DepartmentLeader implements Employee{
public String getName()
{
return "leader";
}
}
//Employee工厂接口
public interface EmployeeFactory {
public Employee CreateEmployee(String employeeType);
}
//Employee工厂接口实现类
public class EmployeeFactoryImpl implements EmployeeFactory{
public Employee CreateEmployee(String employeeType)
{
Employee employee = null;
if(employeeType.equalsIgnoreCase("employee"))
{
employee = new EmployeeImpl();
}
else if(employeeType.equalsIgnoreCase("employee"))
{
employee = new DepartmentLeader();
}
return employee;
}
}