Logo Passei Direto
Buscar
Uma equipe está desenvolvendo um módulo de autenticação que precisa permitir múltiplas estratégias de validação. Para isso, foi definida a seguinte estrutura: public interface Validador { boolean validar(String dado); } public class ValidadorEmail implements Validador { @Override public boolean validar(String dado) { return dado != null && dado.contains("@"); } } public class ValidadorCPF implements Validador { @Override public boolean validar(String dado) { return dado != null && dado.length() == 11; } } Com base no código, qual afirmação está correta? Alternativas: a) As classes ValidadorEmail e ValidadorCPF não podem implementar métodos diferentes, pois uma interface obriga todos os métodos a terem o mesmo comportamento. b) A interface Validador atua como um contrato, garantindo que qualquer classe que a implemente possua o método validar. c) O método validar deveria ser declarado apenas em uma classe abstrata, não sendo permitido em interfaces. d) O uso de interfaces impede o polimorfismo, pois cada classe concreta precisa ser utilizada de forma isolada. e) Interfaces não podem conter métodos, apenas constantes, portanto o código apresentado é inválido.
User badge image
Gabriel Santos

anteontem

Respostas

User badge image

Ed Verified user icon

anteontem

Vamos analisar cada uma das alternativas em relação ao código apresentado: a) As classes ValidadorEmail e ValidadorCPF não podem implementar métodos diferentes, pois uma interface obriga todos os métodos a terem o mesmo comportamento. - Incorreto. As classes podem implementar o método da interface de maneiras diferentes, desde que respeitem a assinatura do método. b) A interface Validador atua como um contrato, garantindo que qualquer classe que a implemente possua o método validar. - Correto. Isso é exatamente o que uma interface faz: define um contrato que as classes devem seguir. c) O método validar deveria ser declarado apenas em uma classe abstrata, não sendo permitido em interfaces. - Incorreto. Em Java, é perfeitamente válido declarar métodos em interfaces. d) O uso de interfaces impede o polimorfismo, pois cada classe concreta precisa ser utilizada de forma isolada. - Incorreto. Na verdade, o uso de interfaces é uma das formas de se implementar polimorfismo em Java. e) Interfaces não podem conter métodos, apenas constantes, portanto o código apresentado é inválido. - Incorreto. Interfaces podem conter métodos (a partir do Java 8, podem até ter métodos default e static). Dessa forma, a alternativa correta é: b) A interface Validador atua como um contrato, garantindo que qualquer classe que a implemente possua o método validar.

Essa resposta te ajudou?

0
Dislike0

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!

Mais conteúdos dessa disciplina