深入泛型2

1、

应用泛型分两类:

直接用:List s = new ArrayList();

扩展应用:

这样一来,UserDao具备了BaseDao的所有方法,并且这些方法中带泛型约束类的地方全部变成了User,使用的时候,UserDao那里不必再加泛形:


。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

以上是接口的继承应用,下面是接口扩展定义中的泛型

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

如果采取接口扩展泛型,类似于List扩展Collection:


那么实现类也变成:


两种方式也没有本质区别,只是泛型约束类使用前后不同。

但是第二种用到userdao实现类的时候要这样写:

UserDao  userDao = new UserDaoImpl();

或者:UserDaoImpl   userDao = new UserDaoImpl();

而且可以发现:这里用UserDaoImpl没有泛型,是因为其定义的时候就没加而是直接继承和实现的:

BasicDaoImpl    UserDao

原则是本类定义时候加泛型,用的时候就得加泛型。

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。




javaAPI的应用中有:泛型应用在接口扩展定义:

你可能感兴趣的:(深入泛型2)