Em relação aos conceitos de programação orientada a objetos ...
Em programação orientada a objetos, polimorfismo é o princípio pelo qual duas ou mais classes derivadas da mesma superclasse podem invocar métodos que têm a mesma assinatura, mas comportamentos distintos.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: C
A alternativa correta é a letra C, que afirma que, em programação orientada a objetos, polimorfismo é o princípio pelo qual duas ou mais classes derivadas da mesma superclasse podem invocar métodos que têm a mesma assinatura, mas comportamentos distintos.
Polimorfismo é um conceito central na programação orientada a objetos. Ele permite que objetos de diferentes classes sejam tratados como objetos da mesma classe base. Isso é possível porque as classes derivadas podem implementar métodos de maneira diferente, embora tenham a mesma assinatura na classe base.
Vamos entender melhor esse conceito:
1. Classe Base e Classes Derivadas:
Uma classe base (ou superclasse) é uma classe da qual outras classes derivam. As classes que derivam da classe base são chamadas de classes derivadas (ou subclasses).
2. Métodos com a Mesma Assinatura:
Uma assinatura de método inclui o nome do método e os tipos de seus parâmetros. No polimorfismo, métodos nas classes derivadas compartilham a mesma assinatura que os métodos na classe base, mas podem ter implementações diferentes.
3. Comportamento Distinto:
Embora os métodos tenham a mesma assinatura, o comportamento de cada método pode ser diferente em cada classe derivada. Isso significa que, dependendo da classe do objeto, o método executará uma ação específica àquela classe.
Por exemplo, se tivermos uma classe base chamada Animal com um método makeSound, e duas classes derivadas, Dog e Cat, ambas derivadas de Animal, cada uma poderá implementar o método makeSound de forma diferente. Quando chamamos makeSound em um objeto do tipo Dog, ele pode latir, enquanto um objeto do tipo Cat pode miar.
Portanto, a afirmação da questão está correta ao descrever o conceito de polimorfismo na programação orientada a objetos.
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
Somente complementando o comentário da colega, a questão trata do polimorfismo sobrescrita (overriding, polimorfismo dinâmico, polimorfismo verdadeiro). Ele ocorre em tempo de execução, pois somente nesse momento é que o compilador saberá qual método chamar dependendo de qual classe o método foi invocado.
Espero ter contribuído!
http://waltercunha.com/blog/index.php/2010/03/12/polimorfismo-sobreposicao-e-sobrecarga-marcio-victorino/
discordo do gabarito: está se referindo apenas ao conceito de polimorfismo dinâmico. Polimorfismo, em seu conceito mais amplo na OO, são métodos com o mesmo NOME (e não assinatura) que executam operações distintas. No polimorfismo estático, os parâmetros são diferentes e o método é escolhido em tempo de compilação. O conceito descrito na questão não engloba esta forma de polimorfismo, logo, está errada.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo