Słowami laika:
Z tego samego powodu producenci urządzeń elektrycznych budowali swoje produkty za pomocą wtyczek elektrycznych zamiast po prostu odrywanych kabli, a domy mają gniazdka ścienne zamiast odrywania kabli wystających ze ściany.
Używając zamiast tego standardowych wtyczek, umożliwiają podłączenie tych samych urządzeń do dowolnej kompatybilnej wtyczki w domu.
Z punktu widzenia gniazdka ściennego nie ma znaczenia, czy podłączysz telewizor, czy stereo.
To sprawia, że zarówno urządzenie, jak i gniazdo są bardziej przydatne.
Weźmy na przykład metodę, która akceptuje mapę jako argument.
Metoda będzie działać niezależnie od tego, czy przekażesz do niej HashMap lub LinkedHashMap, pod warunkiem, że będzie to podklasa Map.
To jest zasada podstawienia Liskowa .
W przykładowym kodzie, który podałeś, oznacza to, że możesz później, z jakiegoś powodu, zmienić konkretną implementację Hash i nie będziesz musiał zmieniać reszty kodu.
Problem z oprogramowaniem polega na tym, że ponieważ stosunkowo łatwo jest później zmienić rzeczy bez marnowania cegieł i zaprawy, ludzie uważają, że takie przewidywanie nie jest warte czasu. Ale rzeczywistość pokazała nam, że konserwacja oprogramowania jest bardzo droga.