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