猿问

Java中泛型类的继承

Java新手,请教个关于泛型类的问题。

在Java中继承一个泛型类的时候,经常见到强制指定泛型类到底是什么,像是:


class GenericSuperClass<T>

{

    //先定义一个泛型类;

    

    T t;

    public GenericSuperClass(T t)

    {

        this.t = t;

    }

}


class GenericSubClass extends GenericSuperClass<Number>

{

    //继承之前定义的GenericSuperClass并且要求T是Number

}

类似的操作很常见,可是我找来找去就是没找到关于这种写法的讨论或者文档。 这种写法貌似也不符合对有界类型参数的声明。。。所以说这种写法是哪来的呢?


侃侃无极
浏览 447回答 1
1回答

慕姐8265434

当然来自Java语言规范:8.1.4.&nbsp;Superclasses and SubclassesSuper:&nbsp; &nbsp; extends ClassTypeClassType:&nbsp; &nbsp; TypeDeclSpecifier TypeArgumentsopt其中的TypeDeclSpecifier是指父类型,见4.3章节:TypeDeclSpecifier:&nbsp; &nbsp; TypeName&nbsp;&nbsp;&nbsp; &nbsp; ClassOrInterfaceType . IdentifierTypeName:&nbsp; &nbsp; Identifier&nbsp; &nbsp; TypeName . Identifier关键是后面的可选的TypeArguments,见4.5.1章节:TypeArguments:&nbsp; &nbsp; < TypeArgumentList >TypeArgumentList:&nbsp;&nbsp; &nbsp; TypeArgument&nbsp; &nbsp; TypeArgumentList , TypeArgumentTypeArgument:&nbsp; &nbsp; ReferenceType&nbsp; &nbsp; Wildcard倒数第二个ReferenceType包括类、接口、数组等,当然Number也是合法的。
随时随地看视频慕课网APP

相关分类

Java
我要回答