Questão de Programação — Linguagens de programação — FCC 2022
Programação›Linguagens de programação
Código
fc063835
Banca
FCC
Órgão
TJ-CE
Ano
2022
Cargo
Analista Judiciário - Ciência da Computação - Sistemas da Informação
Considere o trecho de código em Ruby.class Calculadef self.soma(x,y)puts (x+y)enddef self.soma(x,y,2Z)puts (x+y+z)endendConsiderando um ambiente de testes em condições ideais,
Aao se realizar a execução de Calcula .soma (10,8) haverá um erro relativo a número errado de argumentos.
Ba classe Calcula apresenta um exemplo de sobrecarga de métodos.
Cao se realizar a execução de Calcula .soma (10,8,2) haverá um erro relativo a número errado de argumentos.
Dpara indicar que os métodos soma estão sobrecarregados, é necessário colocar a anotação @Overload na linha anterior à definição do 2º método soma.
Epara indicar que os métodos soma estão sobrescritos, é necessário colocar a anotação @override na linha anterior à definição do 2º método soma.
Revelar gabarito e comentário▾
GabaritoA — ao se realizar a execução de Calcula .soma (10,8) haverá um erro relativo a número errado de argumentos.
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”.
Ruby: Sobrecarga e sobrescrição de métodos
Gabarito: letra A. Em Ruby, não existe sobrecarga de métodos (overloading) como em Java ou C++. A última definição de um método com o mesmo nome sobrescreve a anterior. No código fornecido, o segundo método self.soma (com três parâmetros, supondo que "2Z" seja um erro de digitação para "z") substitui o primeiro (com dois parâmetros). Dessa forma, Calcula.soma(10,8) é chamado com dois argumentos, mas o método espera três, gerando um ArgumentError – erro por número incorreto de argumentos.
Ruby: métodos com mesmo nome: Sobrecarga (overload) (Não existe em Ruby, Última definição vence); Sobrescrita (override) (Automática (sem anotação), Substitui definição anterior); Consequência (Chamada com argumentos da 1ª definição, Erro: número incorreto de argumentos)
Alternativa A — ✅ Correta ⟵ GABARITO
Exatamente: a chamada com dois argumentos falha porque o método vigente espera três parâmetros.
Alternativa B — ❌ Incorreta
A classe não apresenta sobrecarga; o que ocorre é sobrescrição (override). Ruby não suporta múltiplas definições com mesmo nome e assinaturas diferentes convivendo.
Alternativa C — ❌ Incorreta
A execução de Calcula.soma(10,8,2) passaria três argumentos, casando com a segunda definição. Portanto, não haveria erro – ao contrário do que a alternativa afirma.
Alternativa D — ❌ Incorreta
Ruby não utiliza anotação @Overload. Esse recurso é próprio de linguagens como Java. Em Ruby, a sobrescrição é automática e não exige qualquer anotação.
Alternativa E — ❌ Incorreta
A anotação @override também não existe em Ruby. Sobrescrita de métodos ocorre naturalmente, sem necessidade de marcadores.
NÃO CAIA NESSA!
A banca tenta confundir os conceitos de sobrecarga (overload) e sobrescrição (override), além de sugerir anotações de Java. Lembre-se: Ruby não tem sobrecarga de métodos; a última definição sempre vence.