Em relação aos conceitos de programação orientada a objetos ...

Próximas questões
Com base no mesmo assunto
Q351961 Engenharia de Software
Em relação aos conceitos de programação orientada a objetos e lógica de programação, julgue os itens subsequentes.

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.
Alternativas

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

Polimorfismo tem duas formas:

a)  sobrecarga: não depende de herança, dois métodos em uma mesma classe apresentam comportamentos diferentes, mesmo tendo o mesmo nome, os parâmetros são os elementos que os diferente no momentos da invocação. b)sobrescrita: um metodo da super classe é reescrito nas classes filhas de forma que cada uma implemente conforme a necessidade.

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.

A questão trata do polimorfismo dinâmico. Nesse tipo de polimorfismo, o método da filha vai sobrepor o método da mãe, caso forem iguais;  podendo ter comportamentos diferentes a depender da implementação.

Clique para visualizar este comentário

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