为了账号安全,请及时绑定邮箱和手机立即绑定

Java中泛型类的继承

Java中泛型类的继承

侃侃无极 2019-03-14 18:15:51
Java新手,请教个关于泛型类的问题。在Java中继承一个泛型类的时候,经常见到强制指定泛型类到底是什么,像是:class GenericSuperClass<T>{    //先定义一个泛型类;        T t;    public GenericSuperClass(T t)    {        this.t = t;    }}class GenericSubClass extends GenericSuperClass<Number>{    //继承之前定义的GenericSuperClass并且要求T是Number}类似的操作很常见,可是我找来找去就是没找到关于这种写法的讨论或者文档。 这种写法貌似也不符合对有界类型参数的声明。。。所以说这种写法是哪来的呢?
查看完整描述

1 回答

?
慕姐8265434

TA贡献1813条经验 获得超2个赞

当然来自Java语言规范:

8.1.4. Superclasses and Subclasses

Super:

    extends ClassType


ClassType:

    TypeDeclSpecifier TypeArgumentsopt

其中的TypeDeclSpecifier是指父类型,见4.3章节:


TypeDeclSpecifier:

    TypeName  

    ClassOrInterfaceType . Identifier


TypeName:

    Identifier

    TypeName . Identifier

关键是后面的可选的TypeArguments,见4.5.1章节:


TypeArguments:

    < TypeArgumentList >


TypeArgumentList: 

    TypeArgument

    TypeArgumentList , TypeArgument


TypeArgument:

    ReferenceType

    Wildcard

倒数第二个ReferenceType包括类、接口、数组等,当然Number也是合法的。


查看完整回答
反对 回复 2019-04-17
  • 1 回答
  • 0 关注
  • 446 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号