Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Métodos de uma interface são abstratos, é isso mesmo?

N a minha interface, eu deixei os métodos sem serem abstratos e não deu erro nenhum. Qual a diferença entre deixar ou não as assinaturas dos métodos abstract?

3 respostas

Fala ai Alex, tranquilo ?

Cara a interface os métodos são apenas assinaturas para que as classes implementem, não há necessidade de deixar como abstrato.

public abstract

São características default nos métodos de uma interface.

solução!

Oi Alex!

Vamos primeiro a algumas definições:

  • Um Método Abstrato possui só a assinatura; sua implementação é feita nas classes que implementem a classe abstrata ou interface.

  • Interface é um contrato onde quem a implementa se compromete a implementar o corpo de seus métodos. Ela não possui atributos, possui APENAS a assinatura dos métodos.

Conflitando estas duas definições, podemos concluir que todos os métodos de uma Interface são métodos abstratos. Isso já está implícito na definição de interface! ;)

Sendo assim, você não precisa usar a palavra abstract na assinatura dos métodos da interface, mas é importante saber que todos eles são métodos abstratos ;)

Sua interface deve ficar assim:

public interface Autenticavel {

        public void setSenha(int senha);

        public boolean autentica(int senha);
}

Espero ter esclarecido ;)

Bons estudos!