Это делается для того чтобы твой класс в который ты внедряешь зависимость, он не был привязан к реализации
Например у тебя есть класс, который хочет что то кешировать, ты в него внедряешь кеш интерфейс, но от того какой ты будешь использовать кеш класс не зависит, это все должно делаться в настройках, сегодня ты кешируешь в файл, завтра в редис и так далее
Это все называется полиморфизмом