2017-11-29 9 views

答えて

0

HashSetは、Setである。これは、Setインタフェースで定義されたコントラクトを実装します。したがって、クラス階層を確認することなく、そのインタフェースを実装することを明確にすると便利です。

AbstractSet<E>が拡張されているという事実は実装の詳細です。将来のJavaバージョンではAbstractSetの拡張が中止されるかもしれませんが(おそらくそれほどありませんが)、常にSetが実装されます。

0

もちろん、setインターフェイスを実装せずに正常に動作します。しかし、プログラマーがクラスの完全な階層を見ることなく正しく理解できるように、コードをより読みやすくするために行われます。また、リスクを最小限に抑えるために、将来起こる可能性があります(HashSetにはAbstructSetが実装されていませんが、それはあまりありません)。

関連する問題