Questão nº 28

Questão de Tecnologia da Informação · FCC TRT15 2024 (nº 28)

FCC2024Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da InformaçãoTecnologia da Informação
Gabarito: Bver comentário ↓

Considere o seguinte trecho de código em Java.

class BancoDeDados {
    void conectar(String url) throws Exception {
        if (url == null || url.isEmpty()) {
            throw new Exception("URL inválida.");
        }
        System.out.println("Conectado ao banco: " + url);
    }
}

class ConsultaProcesso extends BancoDeDados {
    @Override
    void conectar(String url) throws Exception {
        System.out.println("Conexão validada.");
        I
    }
}

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

Resposta comentada

Gabarito Alternativa B

Quando uma classe filha (subclasse) cria um método com o mesmo nome e parâmetros de um método da classe pai (superclasse), ela está sobrescrevendo (overriding) esse método. Para reutilizar ou estender a lógica original do método da classe pai dentro do método sobrescrito da filha, usamos a palavra-chave `super`.

(A) Incorreta: Chama o método `conectar` da classe pai (`BancoDeDados`) com uma URL vazia (`""`), o que faria o método pai lançar uma `Exception` imediatamente devido à sua validação (`url.isEmpty()`).
(B) Correta: Chama o método `conectar` da classe pai (`BancoDeDados`), passando a URL original (`url`) recebida pelo método sobrescrito. Isso permite que a lógica de validação e conexão definida na classe pai seja executada, estendendo seu comportamento após a mensagem de "Conexão validada." da subclasse.
(C) Incorreta: `this.conectar("jdbc:padrao");` chamaria recursivamente o próprio método `conectar` da classe `ConsultaProcesso`, levando a um loop infinito e, eventualmente, a um `StackOverflowError`. Além disso, ignora a URL original passada como parâmetro. Armadilha: Embora `this` e `super` se refiram a instâncias, `this` aponta para o método da própria classe, enquanto `super` aponta para o método da classe pai.
(D) Incorreta: Apenas imprime uma mensagem no console, sem invocar a lógica de conexão e validação que está implementada no método `conectar` da classe pai. A conexão real não seria estabelecida.
(E) Incorreta: Lança uma exceção, indicando que a conexão não foi implementada. Isso interromperia o fluxo e não aproveitaria a funcionalidade de conexão já existente na classe pai.

Fonte: FCC TRT15 2024 Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 001). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho