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
ce190546
Banca
CESPE / CEBRASPE
Órgão
TSE
Ano
2024
Nível
Superior
Cargo
Analista Judiciário – Área: Apoio Especializado – Especialidade: Tecnologia da Informação
No que concerne a Java, Zuul e Spring Cloud, julgue o item a seguir.No código a seguir, desenvolvido em Java, a substituição dos caracteres #XPTO por @extends fará que a execução do código apresente BMW x3 como resultado.Captura_de tela 2024-12-17 083907.png 395×315
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

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

Java: herança e polimorfismo

Gabarito: letra E (ERRADO). A substituição de #XPTO por @extends no código Java não fará a execução apresentar "BMW x3" como resultado, pois a palavra-chave extends é utilizada para declarar herança entre classes, e não para substituir a anotação @Override, que é o que o código provavelmente requer para sobrescrever um método da classe pai. A questão explora a confusão entre os conceitos de herança (extends) e sobrescrita de método (@Override).

Em Java, a herança é um dos pilares da programação orientada a objetos e é implementada com a palavra-chave extends. Quando uma classe herda de outra, ela pode reutilizar e estender o comportamento da classe base. No entanto, para que um método da subclasse substitua (sobrescreva) um método da superclasse, é necessário utilizar a anotação @Override. Essa anotação não é obrigatória, mas é uma boa prática, pois informa ao compilador que o método está sobrescrevendo um método da classe pai, e o compilador verifica se a assinatura está correta.

No contexto da questão, o código provavelmente contém uma classe que estende outra e sobrescreve um método, como toString(), para retornar "BMW x3". A substituição de #XPTO por @extends não faz sentido sintaticamente, pois @extends não é uma anotação válida em Java. A anotação correta seria @Override. Portanto, a afirmação está incorreta.

A pegadinha da banca está em trocar o conceito de herança (extends) pelo de sobrescrita de método (@Override). O candidato que confunde esses conceitos pode marcar a alternativa como correta, mas a sintaxe correta para sobrescrever um método é @Override, não @extends.

1extends
Palavra-chave de herança
Declara classe filha
2@Override
Anotação de sobrescrita
Verifica assinatura do método
3@extends
Não é anotação válida
Não compila
Java: herança × sobrescrita
LEVELsoulevel.com.br
Java: herança × sobrescrita: extends (Palavra-chave de herança, Declara classe filha); @Override (Anotação de sobrescrita, Verifica assinatura do método); @extends (Não é anotação válida, Não compila)

Alternativa C — ❌ Incorreta

A alternativa afirma que a substituição de #XPTO por @extends fará a execução apresentar "BMW x3". Isso está errado, pois @extends não é uma anotação válida em Java. Para sobrescrever um método e obter o resultado esperado, seria necessário usar @Override. A palavra-chave extends é usada para declarar herança entre classes, não para anotar métodos.

Alternativa E — ✅ Correta ⟵ GABARITO

A alternativa correta é a letra E, pois a afirmação está errada. A substituição de #XPTO por @extends não produzirá o resultado esperado, pois @extends não é uma anotação válida. O correto seria @Override para sobrescrever o método e obter "BMW x3".

Gabarito: letra E

Link permanente: /questoes/ce190546