引用JLS
如果返回类型为R1的方法声明d1覆盖或隐藏 声明另一个方法d2,返回类型为R2,则d1必须为 返回类型可替代d2,或发生编译时错误。 此外,如果R1不是R2的子类型,则必须使用未经检查的警告 发布(除非被禁止(§9.6.1.5))。方法声明必须 没有与任何冲突(§8.4.6)冲突的抛出条款 它覆盖或隐藏的方法;否则,编译时错误 发生。
大胆的句子是否与该段的第一部分相矛盾。
我在下面的JLS中可以看到这适用于通用返回,例如
List<String>
返回类型被List
返回类型覆盖,但JLS中的句子仍然不会将此排除在这种情况之外,如果有另一种情况适用该句子,您能澄清一下吗? ?