Na verdade, um dos principais fundamentos da interface é o tratamento de polimorfismo de classes.
Imagine o seguinte: você cria um programa de e-mails, que le e-mails no formato de texto, entao voce implementa as classes, com todos os metodos suficientes para a manipulacao de textos.
E se voce quiser agora que seu programa receba e-mails com audio?
Voce teria que implementar toda uma classe parecida com a de texto, so que com manipulacao de audio, e tambem tera que modificar toda o seu programa principal para ter condicoes (se for de texto leia como texto, se for de audio toque o audio)…
Usando interfaces, por exemplo interface EMail, voce pode criar duas classes implementando-a: EMailTexto e EMailAudio, com todos os metodos parecidos. No seu programa principal, você ira apenas utilizar a interface Email para ler os emails, e a linguagem Java ira saber automaticamente se a mensagem é de EmailTexto ou EMailAudio, sem precisar voce ficar tratando cada tipo diferente.
A grande maioria das classes da API de Java possuem interfaces, voce pode ler um List, mas este List pode ser um Vector, um LinkedList, um ArrayList, e voce nao precisar tratar cada um deles em especial no seu programa.
Só existe dois problemas em interface:
1- nao se pode construir objetos usando a interface, deve-se usar uma das classes que a implementa, ex.: List lista = new Vector();
2- Se uma classe implementa uma interface, apenas os metodos de assinatura da interface podem ser chamados, ex.: List lista = new LinkedList();
apenas metodos de List podem ser chamados, metodos como addFirst, removeFirst, addLast e removeLast nao podem ser chamados, pois nao existem na interface List.
Espero que tenha ajudado a mudar a sua opiniao em relacao a importancia de interfaces, e se eu estiver errado em algo que eu tenha explicao, por favor me avisem!