1.1. 参数化类型的特点2
类型参数不同但是存在继承关系的两个参数化类型,仍然不能混用。类型参数的继承关系不能推导出参数化类型具有继承关系。
public class GenericParameterTest2 { static class Base {} static class Derived extends Base {} static class Generic<T>{} /** * @param args */ public static void main(String[] args) { //正确用法,T都是Base Generic<Base> base = new Generic<Base>(); //正确用法,T都是Derived Generic<Derived> derived = new Generic<Derived>(); //错误用法。两者的T不相同。 //Generic<Base> base2 = new Generic<Derived>(); //错误用法。两者的T不相同。 //Generic<Derived> derived2 = new Generic<Base>(); //正确用法。原始类型,可以使用任何类型参数的参数化类型来赋值。 Generic base4 = new Generic<Base>(); //正确用法。原始类型可以给任何类型参数的参数化类型来赋值。 Generic<Base> base5 = new Generic(); }
时间: 2024-12-28 12:42:16