「T を拡張」は許可されているのに、「T を実装」は許可されていないのはなぜですか? 質問する

「T を拡張」は許可されているのに、「T を実装」は許可されていないのはなぜですか? 質問する

Java で型パラメータの境界を定義するために、常に " extends" ではなく " "を使用する特別な理由があるのでしょうか?implements

例えば:

public interface C {}
public class A<B implements C>{} 

禁止されていますが、

public class A<B extends C>{} 

正しいです。その理由は何ですか?

ベストアンサー1

汎用制約言語では、クラスが「実装」されているか「拡張」されているかによって意味上の違いはありません。制約の可能性があるのは、「拡張」と「スーパー」です。つまり、このクラスは他のクラスに割り当て可能 (拡張) か、このクラスは他のクラスから割り当て可能 (スーパー) かということです。

おすすめ記事