Não entendi isso bem, e gostaria de saber se alguém pode me explicar essa aplicação de interfaces em softwares orientados a objetos . Obrigado!
Não entendi isso bem, e gostaria de saber se alguém pode me explicar essa aplicação de interfaces em softwares orientados a objetos . Obrigado!
Olá Tibério, tudo bem com você?
Então, não sei se você pegou o conceito de interface como sendo um palavra, ou como sendo de fato uma estrutura do Java
Um ponto importante é que não é bem uma limitação do Java, inclusive James Gosling, um dos criadores, disse que se tivesse mais tempo para construir, ele teria até retirado o conceito de herança
Mas voltando a sua questão, em java o comum é criarmos varias interfaces que ditam os protocolos que elas devem seguir
public interface BaseRepository {
    boolean adicionarEntidade();
    boolean removerEntidade();
    Integer contarEntidade();
}
public interface Auditavel {
    String gerarRelatorio();
}E dentro das nossas classes podemos implementar múltiplas interfaces:
public class UserDatabase implements BaseRepository, Auditavel{
    @Override
    public String gerarRelatorio() {
        return null;
    }
    @Override
    public boolean adicionarEntidade() {
        return false;
    }
    @Override
    public boolean removerEntidade() {
        return false;
    }
    @Override
    public Integer contarEntidade() {
        return null;
    }
}A utilização é bem simples, garantimos a uniformidade das classes que decidem implementar a interface, e além disso, podemos utilizar do polimorfismo e ter um método por exemplo
public class BaseController {
    private BaseRepository repository;
    public BaseController(BaseRepository repository){
        this.repository = repository;
    }
} Neste caso eu posso passar para o meu controlador tanto um UserDatabase, quanto um CategoriaDatabase, ou qualquer outro :)
Conseguiu Compreender?
Abraços e Bons Estudos!