Объясните пожалуйста суть высказывания

Недавно увидел такое выссказываение в одной книжке по разработке ПО с шаблонами: "Программируйте на уровне интерфейса, а не на уровне реализации". Кто-нибудь может объяснить мне в чём суть данного высказывания?

Одним из принципов объектно-ориентированного проектирования является программирование на уровне интерфейса, а не на уровне реализации. Видимо, из-за того что код в книгах и статьях по проектированию представлен преимущественно на Java, программисты на других языках, особенно с динамической типизацией, испытывают трудности с переносом знаний из этих книг и статей на свой рабочий язык программирования.

Часто сложность в понимании принципа "программируйте на уровне интерфейса" кроется в концентрации на инструменте, а не на смысле. Из-за наличия в Java ключевого слова interface, происходит искажение понимания принципа, и он превращается в "программируйте, используя interface". Так как в Python инструмент в виде ключевого слова interface отсутствует, некоторые питонисты пропускают этот принцип.

https://habr.com/post/332578/ - почитайте статейку