java泛型

当我们不带泛型的时候,类其实实质就是Class。

泛型的继承

@Data
public class MainType<T> {
    T param;
    T param2;
    List<String> strings;

    public T getMyParam(){
        return param;
    }

    static public class SubType1 extends MainType<String>{}
    static public class SubType2<E> extends MainType<String>{}
   static public class SubType2<T> extends MainType<T>{}
   static public class SubType3 extends MainType{}

SubType1 extends MainType<String> class SubType3 extends MainType{}     子类没有泛型,那么 子类等同于普通类,如果父类指定类型,子类就是指定的类型,如果父类没有指定类型,子类object。

static public class SubType2<T> extends MainType<String>{} 和  SubType2<T> extends MainType<T>{}    是一样,需要创建子类的时候指定类型,和普通泛型类一样。

 泛型的继承

  • 子类可以指定父类的泛型参数,可以是已知类(Integer、String等),也可以用子类自己的泛型参数指定
  • 泛型被继承时,且指定父类泛型参数,则额外生成的ParameterizedType类型作为子类的父类;如果没有指定父类泛型参数,则直接继承原生类型
 

public class MainTest<T> { T param; static public class SubTest1 extends MainTest<String>{} static public class SubTest2<R> extends MainTest<R>{} //SubTest3继承的时原生类型 static public class SubTest3 extends MainTest{} }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值