По словам Леймана:
По той же причине производители электрических приборов строили свои изделия с помощью электрических розеток, а не просто выдернутых кабелей, а дома поставляются с розетками вместо отрывных кабелей, торчащих из стены.
Вместо этого, используя стандартные вилки, они позволяют подключать одинаковые приборы к любой совместимой вилке по всему дому.
С точки зрения настенной розетки не имеет значения, подключаете ли вы телевизор или стереосистему.
Это делает и прибор, и розетку более полезными.
Возьмем, к примеру, метод, который принимает карту в качестве аргумента.
Этот метод будет работать независимо от того, передаете ли вы ему HashMap или LinkedHashMap, если это подкласс Map.
Это принцип замещения Лискова .
В приведенном вами примере кода это означает, что вы можете по какой-то причине позже изменить конкретную реализацию Hash, и вам не нужно будет изменять остальную часть кода.
Проблема с программным обеспечением заключается в том, что, поскольку относительно легко изменить вещи позже, не тратя кирпичи или раствор, люди предполагают, что такие предварительные размышления того не стоят. Но реальность показала нам, что обслуживание программного обеспечения очень дорого.