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

[Dúvida] Dúvida sobre interface no Java

Olá! Tenho algumas dúvidas. Ao criar uma "interface" no Java, sabe-se que tudo dentro dela é "abstract". Nesse caso, é obrigatório declarar "abstract" antes de "interface" quando for criar uma, sabendo que tudo dentro de uma "interface" já é "abstract"?

Exemplo:

public abstract interface Autentica{
    public abstract void setSenha(int senha);
    public abstract void autentica(int senha);
}

No código acima, se eu NÃO declarasse "abstract" no início ("public abstract interface Autentica{}"), haveria algum problema? Assim:

public interface Autentica{
    public abstract void setSenha(int senha);
    public abstract void autentica(int senha);
    }

class < abstract class < interface

Queria saber também se é possível criar um método "abstract" em uma "class".

2 respostas
solução!

Fala David, tudo certo?

Muito legal a sua dúvida! Não é necessário declarar abstract em interface, porque debaixo dos panos o compilador Java já lida com as interfaces como abstratas! Outro ponto interessante é: como a interface já é tratada como abstrata por padrão, não é necessário nem declarar abstract para seus métodos, eles já são subentendidos como abstratos; além disso, não é necessário declarar a visibilidade public, pois todos os métodos dentro de uma interface por padrão são public e abstract!

Sendo assim, o seguinte código compila:

public  interface Autentica{
    void setSenha(int senha);
    void autentica(int senha);
}

Note que ainda precisamos declarar a assinatura do método como estamos acostumados: com o tipo de retorno, nome do método e parâmetros, no entanto não precisamos do modificador de visibilidade public nem da palavra-chave abstract.

Sobre a questão das classes: para criar um método abstract em uma classe, é necessário que essa mesma seja declarada abstract. Ou seja, é possível, mas a classe tem de ser abstract e necessariamente o comportamento tem que ser implementado por todas as filhas não abstratas.

A aula sobre classes abstratas trata desse assunto com mais profundidade, vale a pena revisitá-la para se aprofundar ainda mais!

Fico à disposição.

Um grande abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Muito obrigado!