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

Próximas questões
Com base no mesmo assunto
Q3290566 Programação

Considere o seguinte trecho de código em Java.


Imagem associada para resolução da questão


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

Alternativas

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:

  1. Exibe Conexão validada.

  2. Chama o método conectar(url) da classe pai.

  3. A classe pai verifica se a URL é nula ou vazia.

  4. 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