引用 JLS
如果具有返回类型 R1 的方法声明 d1 覆盖或隐藏具有返回类型 R2 的另一个方法 d2 的声明,则 d1 必须是可替代 d2 的返回类型,否则会发生编译时错误。 此外,如果 R1 不是 R2 的子类型,则必须发出未经检查的警告(除非被抑制(第 9.6.1.5 节))。方法声明不得有与它覆盖或隐藏的任何方法冲突(第 8.4.6 节)的 throws 子句;否则,会发生编译时错误。
粗体句子是否与段落的第一部分相矛盾。
我可以在下面的 JLS 中读到这适用于通用返回,例如
List<String>
返回类型被返回类型覆盖,List
但 JLS 中的那句话仍然不排除这种情况,如果还有其他情况适用该句子,你能澄清一下吗?