Em uma operação de sobrecarga, uma classe derivada pode red...

Próximas questões
Com base no mesmo assunto
Q314392 Engenharia de Software
No que se refere à programação orientada a objetos, julgue os itens que se seguem.

Em uma operação de sobrecarga, uma classe derivada pode redefinir operações de sua classe base.

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: E - errado

A questão aborda um conceito importante da programação orientada a objetos: a diferença entre sobrecarga (overloading) e sobrescrita (overriding) de métodos. Entender essa diferença é fundamental para resolver tal questão.

A sobrecarga ocorre quando temos dois ou mais métodos na mesma classe com o mesmo nome, mas com listas de parâmetros diferentes (em tipo ou quantidade), permitindo assim comportamentos diferentes dependendo dos argumentos utilizados na chamada. Isso não está diretamente relacionado a herança ou classes derivadas.

Já a sobrescrita é um conceito que envolve herança e ocorre quando uma classe derivada implementa um método que já existe na classe base, com a mesma assinatura (mesmo nome e mesmos parâmetros). A sobrescrita permite à classe derivada fornecer uma implementação específica de um método que já é fornecido por sua classe base.

Portanto, a afirmação de que "em uma operação de sobrecarga, uma classe derivada pode redefinir operações de sua classe base" está incorreta. O que redefiniria operações da classe base seria uma operação de sobrescrita, não de sobrecarga. Assim, a alternativa E - errado é a correta, pois a afirmação mistura conceitos de sobrecarga com os de sobrescrita, o que pode levar a confusões.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Quando uma classe derivada redefine um método, utiliza-se o conceito de SOBREPOSIÇÃO (overloading) do método e não SOBRECARGA, conforme afirma a questão.

A SOBRECARGA (overriding) é utilizada para reescrever um mesmo método, porém com parâmetros distintos, dentro de uma mesma classe.

Questão bem elaborada e com certeza pegou muita gente, inclusive eu!
sobrecarga (overloading) - métodos de uma mesma classe, com o mesmo nome, mas com argumentos diferentes:
  • public void println(char);
  • public void println(int);
redefinição (overriding) - método de uma classe com mesma assinatura (mesmo nome e mesmos argumentos) de método de uma superclasse.
não é overload, mas sim override
Não concordo com o gabarito, mas de nada adianta né, já que a decisão da banca é soberana.

O gabarito foi alterado de C para E:

http://www.cespe.unb.br/concursos/INPI_12/arquivos/INPI_JUSTIFICATIVAS_DE_ALTERA____O_DE_GABARITO.PDF
O conceito apresentado no item é de sobrescrita, razão pela qual se opta pela alteração de seu gabarito.
Madruga, voce acertou a explicação pore confundiu os termos em inglês. Sobreposição = overriding e sobrecarga = overloading. Bonds estudos

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo