Existem varios beneficios no uso de interface que sao dificeis de explicar de forma superficial sem o aprofundamento em design patterns, entendimento sobre separation of concens, estrutura de codigo etc.
O benefico que diretamente voce consegue perceber eh:
Como a interface eh um contrato, ela obriga aos que a assinam cumpram as regras do contrato, que sao as implementecoes exigidas. Isso eh legal pois traz um beneficio indireto para linguages como o c# que nao dao suporte a heranca multipla.
Outro benefico eh que voce pode ter classes diferentes que implementam a mesma interface, ou seja, ambas podem ser refereciadas por uma outra classe, ou codigo, ao inves de ter uma implementacao do codigo para cada tipo de classe que contem.
Os beneficios nao aparentes que ai voce precisa ter conhecimento nos temas que falei sao:
- Codigo desacoplado
- Programacao baseada em componente (da uma olhada na Engine Unity por exemplo)
- Facil manutencao
- Codigo mais escalavel
- Melhora a reutilizacao
- a implementacao fica separada da assinatura, declaracao de
Interfaces adiciona uma arquitetura plug and play na aplicacao.
Espero ter dado motivos suficientes para voce perceber que eh um importante conceito.
Entendimento total so quando voce se deparar com situacoes reais onde interface faz a diferenca.
Espero ter ajudado