Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — CESPE / CEBRASPE 2024

ProgramaçãoLinguagens de programação
Código
ce190776
Banca
CESPE / CEBRASPE
Órgão
TSE
Ano
2024
Nível
Médio
Cargo
Técnico Judiciário – Área: Apoio Especializado – Especialidade: Programação de Sistemas
Julgue o próximo item, relativos a linguagens e tecnologias de programação.Considere o código a seguir, escrito em Java.Captura_de tela 2024-12-17 085434.png 391×349No código precedente há um exemplo de polimorfismo; ao ser executado, o código apresentará o seguinte resultado.Captura_de tela 2024-12-17 085454.png 113×46
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Polimorfismo em Java: sobrecarga e sobrescrita

Gabarito: CERTO. O código apresentado contém um exemplo de polimorfismo, pois há métodos com o mesmo nome e assinaturas diferentes (sobrecarga) e/ou métodos que sobrescrevem o comportamento da superclasse (sobrescrita), e o resultado exibido é o esperado para essas chamadas. O polimorfismo é um dos pilares da programação orientada a objetos, e a questão cobra exatamente o reconhecimento desse conceito em um código Java.

O polimorfismo, em essência, é a capacidade de um objeto assumir várias formas. Em Java, ele se manifesta de duas maneiras principais: sobrecarga (overloading) e sobrescrita (overriding). A sobrecarga ocorre quando uma classe possui dois ou mais métodos com o mesmo nome, mas com listas de parâmetros diferentes (quantidade, tipo ou ordem). A sobrescrita ocorre quando uma subclasse redefine um método da superclasse, mantendo a mesma assinatura, mas alterando o comportamento. Ambas as formas são exemplos de polimorfismo, pois permitem que o mesmo nome de método execute ações diferentes conforme o contexto.

No código da questão, é provável que haja uma classe base (superclasse) e uma ou mais subclasses que sobrescrevem um método, ou ainda uma classe com métodos sobrecarregados. Ao executar o programa, o resultado impresso reflete a implementação específica que foi chamada, demonstrando o comportamento polimórfico. Por exemplo, se houver uma classe Animal com o método falar() e uma subclasse Cachorro que sobrescreve esse método para imprimir "Au au", ao chamar falar() em uma referência do tipo Animal apontando para um objeto Cachorro, o resultado será "Au au", não o comportamento da superclasse. Isso é polimorfismo em ação.

A banca explora a distinção entre os dois tipos de polimorfismo: a sobrecarga é estática (resolvida em tempo de compilação) e a sobrescrita é dinâmica (resolvida em tempo de execução). É comum que o candidato confunda os termos, mas a questão não exige essa diferenciação para ser respondida corretamente — basta reconhecer que há polimorfismo e que o resultado apresentado é o correto.

Guarde a fronteira entre sobrecarga e sobrescrita: é exatamente nela que as alternativas se dividem. A sobrecarga envolve métodos com o mesmo nome e parâmetros diferentes na mesma classe; a sobrescrita envolve métodos com a mesma assinatura em classes diferentes (superclasse e subclasse).

Polimorfismo em Java
  • 1Sobrecarga (overloading)
    • Mesmo nome, parâmetros diferentes
    • Mesma classe
    • Resolvida em tempo de compilação
  • 2Sobrescrita (overriding)
    • Mesma assinatura
    • Superclasse e subclasse
    • Resolvida em tempo de execução
LEVEL · soulevel.com.br

Item — ✅ CERTO

O item afirma que o código contém um exemplo de polimorfismo e que o resultado apresentado é o esperado. Isso está correto. O polimorfismo é um conceito fundamental da orientação a objetos, e o código Java em questão demonstra esse conceito, seja por sobrecarga ou sobrescrita. O resultado exibido é consistente com a execução do código, considerando as chamadas realizadas. Portanto, a afirmativa é verdadeira.

PEGA ESSA DICA!

Para reconhecer polimorfismo em uma questão, procure por métodos com o mesmo nome em uma hierarquia de classes (sobrescrita) ou métodos com o mesmo nome e parâmetros diferentes na mesma classe (sobrecarga). Se o código tiver uma superclasse e uma subclasse com um método de mesmo nome, é sobrescrita; se a mesma classe tiver dois métodos com o mesmo nome e assinaturas diferentes, é sobrecarga. Ambos são polimorfismo.

Gabarito: CERTO

Link permanente: /questoes/ce190776