Na programação em Java, uma interface
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: A - não pode conter métodos privados.
Para entender a questão, é importante saber que uma interface em Java é um tipo de referência similar a uma classe, que pode conter constantes e métodos abstratos. A partir do Java 8, interfaces também podem ter métodos default e static com implementações. No entanto, uma característica fundamental é que qualquer método que seja parte da interface é, por natureza, público e abstrato (exceto os métodos default e static mencionados). Vamos analisar a alternativa correta:
Quando falamos de métodos privados em interfaces, estamos entrando em um tema de visibilidade e acesso. Em Java, métodos privados são aqueles que só podem ser acessados dentro da própria classe ou interface. No entanto, o propósito de uma interface é definir um contrato que outras classes podem implementar, o que significa que seus métodos devem ser públicos para que possam ser acessíveis nas classes que assinam esse contrato. A partir do Java 9, interfaces podem conter métodos privados, mas estes são destinados apenas para uso interno na interface para auxiliar outros métodos default ou static. Esses métodos privados não fazem parte do contrato que a interface expõe para as classes que a implementam.
Assim, levando em conta o conhecimento até o Java 8, que é comum em muitos concursos e o fato de que o enunciado não especifica a versão do Java, a alternativa A é considerada correta, pois tradicionalmente as interfaces não podem conter métodos privados que sejam parte do contrato que deve ser implementado pelas classes.
É importante notar que as outras alternativas são incorretas porque:
- Uma interface pode ser implementada por múltiplas classes, não apenas uma (alternativa B).
- Interfaces não podem ser instanciadas, independente da relação de herança (alternativa C).
- Interfaces não possuem construtores, pois não são objetos que podem ser instanciados (alternativa D).
- Os métodos de uma interface são públicos por padrão e não protegidos (protected), portanto a alternativa E também é incorreta.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
a-
you can declare methods in a Java interface with the public access modifier, but it's not mandatory to specify the public keyword explicitly. In Java interfaces, all methods are implicitly public and abstract by default. This means that they are accessible from anywhere and do not have a method body.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo