Questão FC373325
Considere o trecho de código em Ruby. class Calcula def self.soma(x,y) puts(x+y) end def self.soma(x,y,z) puts(x+y+z) end end Considerando um ambiente de testes em condições ideais
Linguagens de Programação
FCC · 2022
Considere o trecho de código em Ruby.
class Calcula
def self.soma(x,y)
puts(x+y)
end
def self.soma(x,y,z)
puts(x+y+z)
end
end
Considerando um ambiente de testes em condições ideais,
- ao se realizar a execução de Calcula.soma (10,8) haverá um erro relativo a número errado de argumentos.
- a classe Calcula apresenta um exemplo de sobrecarga de métodos.
- ao se realizar a execução de Calcula.soma (10,8,2) haverá um erro relativo a número errado de argumentos.
- para indicar que os métodos soma estão sobrecarregados, é necessário colocar a anotação @Overload na linha anterior à definição do 2o método soma.
- para indicar que os métodos soma estão sobrescritos, é necessário colocar a anotação @Override na linha anterior à definição do 2o método soma.
Mostrar resposta e comentário
Gabarito
A
Comentário do professor
Em Ruby, a definição `def self.soma(...)` cria um método de classe. Quando o mesmo nome é declarado duas vezes, a segunda definição substitui a primeira — ou seja, ocorre sobrescrita e só a última assinatura permanece válida.
No código apresentado, a última definição é def self.soma(x,y,z), que exige exatamente três argumentos. Assim, ao executar Calcula.soma(10, 8) o interpretador levantará um ArgumentError, indicando número incorreto de argumentos (por exemplo: wrong number of arguments (given 2, expected 3)).
Portanto, a alternativa correta afirma que a chamada com dois parâmetros causará erro, pois a implementação vigente do método requer três parâmetros obrigatórios.
Conteúdo do catálogo FC Concursos · Atualizado em