知る限り、私のクラスのextends
親クラスとimplements
インターフェース。しかし、私はを使用できない状況に出くわしますimplements SomeInterface
。これは、ジェネリック型の宣言です。例えば:
public interface CallsForGrow {...}
public class GrowingArrayList <T implements CallsForGrow> // BAD, won't work!
extends ArrayList<T>
ここでの使用implements
は構文的に禁止されています。最初に、<>内でインターフェイスを使用することはまったく禁止されていると考えましたが、そうではありません。可能ですが、extends
代わりに使用するだけ ですimplements
。その結果、インターフェイスを「拡張」しています。この別の例は動作します:
public interface CallsForGrow {...}
public class GrowingArrayList <T extends CallsForGrow> // this works!
extends ArrayList<T>
私にはそれは構文上の矛盾と思われます。しかし、Java 6の細かい部分を理解していないのかもしれません。インターフェイスを拡張する必要がある他の場所はありますか?私が拡張するつもりのインターフェースには、いくつかの特別な機能が必要ですか?