Boa tarde Neto,
Seguinte, há uma série de benefícios e complexidades em se desenvolver para interface e não para implementação.
Mas a grande diferencia é que desenvolver para interface vc passará a criar um baixo acoplamento do seu sistema, sendo que se daqui algum tempo você precise crescer o sistema e trocar métodos e projetos, você não precisa mexer nas camadas que chamam sua
classe, basta apenas trocar a implementação da sua interface e todo o seu sistema continuará funcionando normalmente, sem falar que a interface obriga você a implementar os métodos obrigatórios para funcionar.
Outra vantagem você consegue separar equipes para lidar com trabalhos diferentes, por exemplo, uma equipe desenvolvendo front-end e uma equipe back-end, a equipe de front-end não fica refém da equipe back-end para fazer as classes que utilizarão, basta criar
a interface e a equipe de front trabalhará normalmente e a equipe de back-end se preocupará apenas em criar a implementação das interfaces que estão sendo utilizadas pela equipe de front sem um atrapalhar o trabalho do outro.
Vou deixar alguns links aqui que ajudarão vc a entender melhor:
https://msdn.microsoft.com/pt-br/library/3b5b8ezk%28v=vs.90%29.aspx?f=255&MSPPError=-2147217396
http://www.guj.com.br/java/235931-resolvido-qual-a-vantagem-de-usar-interfaceimplements-
Uma pesquisa rápida você encontra muito material sobre esse assunto.
Espero ter ajudado.
Abraços