Java-API сообщает мне, какие интерфейсы реализует определенный класс.
Но есть два вида информации, и я не совсем уверен, что это значит. Например для класса "TreeSet": https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/TreeSet.html есть эта информация:
All Implemented Interfaces:
Serializable, Cloneable, Iterable<E>, Collection<E>, NavigableSet<E>, Set<E>, SortedSet<E>
, а также:
public class TreeSet<E>
extends AbstractSet<E>
implements NavigableSet<E>, Cloneable, Serializable
Теперь в разделе "внедряемые" перечислено меньше интерфейсов, чем в разделе "Все реализованные интерфейсы". Что это значит?
И еще: скажем, я хочу нарисовать UML-диаграмму, которая определяет отношения между Treeset и Set и Collection. Я предполагаю, что Treeset реализует Set и Collection (потому что API говорит об этом, но его нет в списке реализаций, что меня немного смущает ...?). Но в то же время Set также является подынтерфейсом Collection. Итак, будет ли достаточно нарисовать стрелку, которая указывает на связь между двумя интерфейсами, и чем одну стрелку, чтобы указать, что TreeSet реализует Set (но не стрелка для Collection), или мне нужно нарисовать стрелку, указывающую, что TreeSet также реализует Collection? 1011 *
Извините за мой английский. Я надеюсь, что смогу сделать мой вопрос понятным.