作用:
泛型添加的不同地点
定义类时添加泛型:
方法定义泛型:
调用方法时确定使用的类型
方法中定义的泛型传入的是什么类型就是什么类型
可以用instanceof来确定是不是要传入的参数类型
接口定义泛型:
创建实现类对象时确定使用的类型
不同的实现类实现这个接口的时候使用的泛型是不一样的
接口定义一个泛型 实现类也加上一个泛型 最后确定的是在最后创建对象调用的时候
通配符<?> 不能向此类型存入数据 未知类型不能存储数据
通配符 上限到zi类型 extend
通配符 下限到zi类型 super