Na orientação a objetos

Próximas questões
Com base no mesmo assunto
Q263648 Engenharia de Software
Na orientação a objetos

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: A

Para resolver esta questão, é essencial compreender os conceitos de herança e polimorfismo na orientação a objetos. A herança é um mecanismo que permite que uma classe-filha reutilize membros (atributos e métodos) de uma classe-pai, enquanto o polimorfismo permite que um método possa ter várias formas e comportamentos, dependendo da classe que o implementa.

A Alternativa A está correta pois descreve acuradamente a herança ao afirmar que membros de uma classe-pai podem ser reaproveitados em uma classe-filha. Ela acrescenta que a classe-filha tem acesso aos membros públicos e protegidos da classe-pai, o que é uma afirmação correta sobre o controle de acesso em herança. Em relação ao polimorfismo, a alternativa menciona métodos abstratos definidos em classes abstratas, os quais devem ser implementados nas classes-filhas, podendo, nessas classes, apresentar comportamentos distintos. Isso reflete com precisão o conceito de polimorfismo, onde uma mesma assinatura de método pode comportar-se de forma diferente dependendo da instância (ou classe-filha) que a invoca.

Compreender esses conceitos e ser capaz de reconhecer suas definições e aplicações corretas é crucial para o sucesso em questões de engenharia de software em concursos públicos.

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

Acredito que a "D" não está incorreta, só incompleta. Diz que :

O polimorfismo é aplicado ao caso em que existe a necessidade de implementar métodos sobrecarregados, nos quais a classe-filha necessita implementar dois métodos com o mesmo nome e parâmetros diferentes.

Isso é o chamado polimorfismo de Ad-hoc (sobrecarga/overload). Conforme a definição do Wikipedia:

Existem três tipos de polimorfismo que a linguagem pode ter (atente para o fato de que nem toda linguagem orientada a objeto tem implementado todos os tipos de polimorfismo):

  • Universal
    • Inclusão - um ponteiro para classe mãe pode apontar para uma instância de uma classe filha (exemplo em Java: List lista = new LinkedList(); (tipo de polimorfismo mais básico que existe)
    • Paramétrico - se restringe ao uso de templates (C++, por exemplo) e generics (C#/Java)
  • Ad-Hoc
    • Sobrecarga - duas funções/métodos com o mesmo nome mas assinaturas diferentes

Ele só não citou os outros polimorfismos, mas isso não invalida a questão.

Alguém pode comentar?
Colega você matou a questão.
Você disse que a questão está incompleta, por este motivo devemos marcar a alternativa mais completa que por sinal é a letra A. 
Na época da prova errei essa questão e fiquei indignado, por acreditar que haviam dois itens corretos (A e D) Acontece que houve uma troca sutíl no que se refere a sobrescrita e sobrecarga.

A questão está errada pelo simples fato que troucou sobreescrita por sobrecarga. 

A sobrecarga ocorre quando o mesmo método recebe parâmetros diferentes, na mesma classe. 
A questão D também está certa, mas FCC é a MAIS CORRETA.

"O conceito de herança estabelece que uma classe possa aproveitar ..." - o mais correto seria REAPROVEITAR. 

"O polimorfismo é aplicado ao caso em que existe a necessidade de implementar métodos sobrecarregados"  Polimorfismo não é só sobrecarga, também há sobrescrita. 
Não acho que a letra D esteja certa. Este trecho: "a classe-filha necessita implementar dois métodos com o mesmo nome"
A classe filha pode sobrescrever apenas 1 dos dois métodos sobrecarregados, não precisa implementar os 2.

Uma Dica: quando a questão não falar qual polimorfismo é, ela está se referindo ao dinâmico.
Bons estudos!!

Clique para visualizar este comentário

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