JLSからの引用
リターンタイプR1のメソッド宣言d1が、リターンタイプR2の別のメソッドd2の宣言をオーバーライドまたは非表示にする場合、d1はd2の代わりにリターンタイプである必要があります。そうしないと、コンパイル時エラーが発生します。 さらに、R1がR2のサブタイプでない場合は、チェックされていない警告を発行する必要があります(抑制されていない限り(§9.6.1.5))。メソッド宣言には、オーバーライドまたは非表示にするメソッドのスロー句と競合するthrows句(§8.4.6)を含めることはできません。そうしないと、コンパイル時エラーが発生します。
太字の文は段落の最初の部分と矛盾しません。
以下のJLSで、これが一般的な返品に適用されることを確認できます。
List<String>
リターンタイプはリターンタイプによってオーバーライドされますList
が、それでもJLSのその文は、この状況だけにこれを除外しません。その文が適用される別の状況があるかどうかを明確にできますか?