In Laymans Worten:
Aus dem gleichen Grund bauten die Hersteller von Elektrogeräten ihre Produkte mit elektrischen Steckern, anstatt einfach die Kabel abzuziehen, und die Häuser sind mit Wandsteckdosen ausgestattet, anstatt Kabel, die aus der Wand herausragen, abzuziehen.
Indem Sie stattdessen Standardstecker verwenden, können Sie die gleichen Geräte an jeden kompatiblen Stecker im ganzen Haus anschließen.
Aus Sicht der Steckdose spielt es keine Rolle, ob Sie ein Fernsehgerät oder eine Stereoanlage anschließen.
Das macht sowohl das Gerät als auch die Steckdose nützlicher.
Nehmen Sie zum Beispiel eine Methode, die eine Map als Argument akzeptiert.
Die Methode funktioniert unabhängig davon, ob Sie eine HashMap oder eine LinkedHashMap übergeben, sofern es sich um eine Unterklasse von Map handelt.
Das ist das Liskov-Substitutionsprinzip .
In dem von Ihnen angegebenen Beispielcode bedeutet dies, dass Sie später aus irgendeinem Grund die konkrete Implementierung von Hash ändern können und den Rest des Codes nicht mehr ändern müssen.
Das Problem mit der Software ist, dass die Leute, da es relativ einfach ist, Dinge später ohne Verschwendung von Ziegeln oder Mörtel zu ändern, davon ausgehen, dass sich diese Art des Vorausdenkens nicht lohnt. Die Realität hat uns jedoch gezeigt, dass die Softwarewartung sehr teuer ist.