1
resposta

Uso de Interface, repetições do mesmo código em diversas classes!

Achei fantástico o Java usar a herança para evitar repetições de códigos, atributos e o polimorfismo onde objetos diferentes podem ter sua variável do mesmo tipo mais genérico, já que herdaram da mesma classe. Mas esse primeiro contato com a transformação de uma classe em uma interface me deixou confuso pela necessidade da repetição de códigos em outras classes, onde a Interface ficou com as assinaturas dos métodos e diversas outras classes como Gerente, Administrador e Cliente precisaram repetir o mesmo método mais o atributo Senha. Bem...vou continuar assistindo os vídeos, talvez tenha outra solução ou uma aplicação por necessidade que ainda não percebi.

1 resposta

As interfaces são necessárias onde você espera volatilidade em seu programa, pontos em que você antecipa mudanças. Um bom lugar para examinar interfaces é a estrutura de coleções do próprio Java:

java.util.List //interface

java.util.ArrayList // class que implementa java.util.List 
java.util.LinkedList // class que implementa java.util.List 

você pode escrever um código como este:

List l = new ArrayList();

l.add("teste")

Se, no futuro, você quiser alterar a implementação com LinkedList, tudo o que você precisa fazer é alterar a primeira linha para:

List l = new LinkedList();