Considere o seguinte trecho de código em Java.Com base nos c...
Considere o seguinte trecho de código em Java.

Com base nos conceitos de herança e sobrescrita e sabendo que o código será executado em condições ideais, a lacuna I deve ser corretamente preenchida com
Comentários
Veja os comentários dos nossos alunos
A questão envolve herança e sobrescrita em Java.
Na classe ConsultaProcesso, o método conectar foi sobrescrito. A linha marcada com a lacuna I deve chamar o método original da superclasse (BancoDeDados) passando a url, preservando a lógica da classe base.
Alternativas:
- (A) super.conectar(""); → chama o método da superclasse com uma string vazia. Isso violaria a lógica de validação da URL da superclasse e lançaria exceção.
- (B) super.conectar(url); → chama corretamente o método da superclasse, reutilizando a lógica de validação da URL e impressão da conexão.
- (C) this.conectar("jdbc:padrao"); → chama o próprio método sobrescrito, levando a uma recursão infinita.
- (D) System.out.println("Conexão concluída."); → apenas imprime, não chama o método da superclasse.
- (E) throw new Exception("Conexão não implementada."); → não faz sentido, pois a conexão está implementada.
Resposta correta: B
By Futuro DEV Estável.
Não faz absolutamente nenhum sentido chamar a lógica de validação da URL depois de dar a mensagem "Conexão Validada". A única resposta aceitável nessa questão é a D. Basta imaginar a confusão do usuário que recebe a mensagem "Conexão validada" e na linha de baixo "URL invalida".
Errei por seguir o msm raciocínio que o Fernando.
1. Solução correta
A lacuna I deve ser preenchida com:
Java
super.conectar(url); Alternativa B
2. Explicação como se fosse iniciante
Imagine que temos duas classes:
BancoDeDados: é a classe pai, responsável por verificar se a URL é válida e realizar a conexão.
ConsultaProcesso: é a classe filha, que herda as funcionalidades da classe pai.
A classe filha começa o método com esta mensagem:
Java
System.out.println("Conexão validada.");
Mas ela também precisa executar o método original da classe pai. É aí que entra:
Java
super.conectar(url);
A palavra super significa que estamos chamando algo da classe pai.
3. O que acontece na prática?
Quando o método conectar(url) da classe filha é executado:
Exibe Conexão validada.
Chama o método conectar(url) da classe pai.
A classe pai verifica se a URL é nula ou vazia.
Se a URL for válida, exibe Conectado ao banco: seguido da URL. Se for inválida, lança uma exceção.
Dica para a prova
extends → herda de outra classe.
@Override → indica que um método está sendo sobrescrito.
super.metodo() → chama o método da classe pai.
Para memorizar: super chama o pai; this se refere ao próprio objeto.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo