Я всегда видел, как структуры данных данных создаются как дочерние экземпляры и объявляются их родительскими интерфейсами. Например.Объявить как родительский интерфейс и инициализировать как дочерний экземпляр
Set<E> collection1 = new HashSet<E>();
Map<E> collection1 = new HashMap<E>();
В чем причина этого. Детские классы наследуют все методы, и все методы, упомянутые в документации Java из дочерних классов, переопределяются, но имеют одинаковое значение. Тогда в чем причина их объявления - их родительский интерфейс.
Любые входы значительно помогут мне в укреплении моих основ.
EDIT
Спасибо за Ваш отзыв. Я понимаю. Но в изменении
Set<E> collection1 = new HashSet<E>();
в
Set<E> collection1 = new LinkedHashSet<E>();
мы потеряем нашу ссылку на наш оригинальный HashSet как мы объявляем новый LinkedHashSet для эталонного набора. Так в чем смысл этого? Если бы мы могли применить старую реализацию к новой, не теряя данные, тогда это имело бы смысл.
Вероятно, стоит отметить, лежащую в основе реализации также упоминаются как «конкретная реализация», а также. – Durandal
@MagicMan Отметил :) – NINCOMPOOP