質問:
Java では、なぜ「extends T」なのか型パラメータの境界の定義は許可されていますが、「T の実装」は許可されていません?
たとえば、次のコードは禁止されています:
<code class="java">public interface C {} public class A<B implements C> {}</code>
このコードは有効です:
<code class="java">public class A<B extends C> {}</code>
答え:
意味的には、一般的な制約言語内では「拡張」と「実装」の間に区別はありません。制約の可能性は、継承または代入の互換性の方向を反映して、「extends」と「super」に制限されます。
無効なコード例の場合、「implements」を使用して型パラメーター B の制約を定義しようとします。ただし、「implements」は有効な制約の型ではないため、許可されません。
以上がJava では型パラメータの境界として「extends T」が許可されるのに、「implements T」は許可されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。