接口 , 方法 提供复用性 , 支持类型不确定的数据类型 ;
泛型类 : 提高代码复用程度 ;
泛型方法 : 参数或返回值有泛型类型约束 , 参数或返回值类型必须符合对应的泛型类型 , 泛型使用时会进行类型检查约束..., 泛型类型设置为 int 类型
Cache cache2 = Cache();
// 调用泛型方法时 , 传入的参数必须符合对应的泛型类型
// 泛型约束 : 泛型使用时会进行类型检查约束...泛型还可以进行特定类型约束 , 如指定该泛型类型必须是某个类的子类 , 使用 约束该泛型必须是某个类的子类 ;
泛型类示例代码 :
/// 泛型中的特定类型约束.../ 父类构造器也是初始化列表
/// 除了父类构造方法之外 , 还可以在子类构造方法体之前初始化示例变量
/// 不同的初始化实例变量之间使用逗号隔开..., 在命名构造方法中必须对其进行初始化
// 但是在命名工厂构造方法中 , 可以不初始化 final 类型成员
// 命名工厂构造方法可以有返回值
factory Student.init2