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

Método static em interface

Olá! Na atividade 2 da segunda aula de Java 8, a resposta indica que a interface pode conter métodos default ou 'static'. A minha dúvida é: Uma interface pode conter métodos static? Caso não possa, o que significaria conter métodos 'static' proposto pela resposta?

Agradeço a atenção. ^_^

2 respostas
solução!

Olá Antônio, tive esta mesma dúvida. Dando uma olhada na internet, entendi que a partir do Java 8 é possível criar métodos estáticos em interfaces. Nas versões anteriores, realmente isso não era possível.

No meu entendimento, a ideia por trás dos métodos estáticos em uma interface, é aumentar o grau de coesão de um projeto, fornecendo um mecanismo simples que reúne métodos relacionados em um único local, sem precisar criar um objeto. Veja este link (em inglês) que dá uma explicação bem bacana sobre o assunto https://www.baeldung.com/java-static-default-methods

Espero ter ajudado. Abs.

Olá, Emerson! Muito obrigado pela resposta e pelo artigo. Consegui compreender agora a importância e a diferença de default e static methods em interfaces. Basicamente default methods podem ser utilizados através de um objeto da classe que implementa a interface, e static methods podem ser utilizados sem a necessidade de implementação da interface por uma classe. Portanto, podemos reunir métodos utilitários que semanticamente ficam melhor localizados em interfaces. Os default methods, por sua vez, permitem agregar mais funcionalidades às interfaces, sem quebrar o funcionamento dos sistemas que já utilizam as interfaces. Muito bom o artigo! Agradeço mais uma vez! ^_^