JAva-汎用クラスはクラスなのかインタフェースなのか、書き方ではなぜimplementsを使わなかったのか...

569 ワード

java-core P533
public static  T min(T[] a )

  
ここで疑問が生じたのは、汎用クラスの英語はgeneric classで、classはinterfaceではありませんが、ここではextands Comparableを使っています.インタフェースだけがextandsインタフェースですが、汎用クラスはインタフェースですか?
P 533にはこう説明されています.
Tがバインドタイプであるべきサブタイプであることを示す.Tとバインディングタイプはクラスであってもインタフェースであってもよい.キーワードextandsを選択する理由は、サブクラスの概念に近いためであり、javaの設計者も言語に新しいキーワード(subなど)を追加するつもりはない.
したがって、ここでの汎用用におけるextendsのキーワードの意味は、実は汎用に限定(bound)を設定する際に、extends=extends or implements.
転載先:https://www.cnblogs.com/zhizhiyin/p/11114962.html