O que é polimorfismo em programação orientada a objetos?

Próximas questões
Com base no mesmo assunto
Q2369295 Programação
O que é polimorfismo em programação orientada a objetos?
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Resposta Correta: B - Técnica em que objetos de diferentes classes são tratados da mesma forma.

Polimorfismo é um dos conceitos fundamentais da programação orientada a objetos. Ele permite que objetos de diferentes classes sejam tratados como se fossem de uma única superclasse. Isso é possível graças à herança, onde uma classe filha herda métodos e propriedades de uma classe pai, mas também pode sobrescrevê-los com suas próprias implementações.

O polimorfismo se manifesta, por exemplo, quando uma função é capaz de receber diferentes tipos de objetos como argumento e cada um desses objetos é capaz de interagir com a função de maneira adequada. Isso permite que programas sejam escritos de forma mais geral e extensível.

No contexto do polimorfismo, é importante entender o conceito de "interface" em POO. Uma interface define um contrato que as classes podem implementar; significa que qualquer classe que implemente uma determinada interface promete fornecer implementação para os métodos que a interface declara.

Assim, a alternativa B está correta, porque o polimorfismo realmente se refere à capacidade de referenciar objetos de classes diferentes de uma maneira unificada, geralmente por meio de uma referência a uma classe base comum ou uma interface. Isso facilita o desenho de sistemas extensíveis e a escrita de código que pode trabalhar com um conjunto diversificado de tipos, enquanto se utiliza a mesma interface.

As demais alternativas são incorretas porque descrevem outros conceitos:

  • A - Refere-se a objetos imutáveis, que é um conceito diferente e não está diretamente relacionado ao polimorfismo.
  • C - Descreve uma classe abstrata, que é uma classe que não pode ser instanciada e serve como uma espécie de modelo para outras classes.
  • D - Relaciona-se com encapsulamento e controle de acesso aos atributos de uma classe.
  • E - Envolve criptografia e serialização, que não estão relacionados ao conceito de polimorfismo em POO.

O entendimento do polimorfismo é crucial para a construção de sistemas robustos e flexíveis, pois permite que alterações e extensões sejam feitas com menor impacto no código existente, promovendo reutilização e facilidade de manutenção.

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

Não é bem isso, mas a alternativa B é a "mais correta".

B) Técnica em que objetos de diferentes classes são tratados da mesma forma.

Polimorfismo em programação orientada a objetos refere-se à capacidade de um objeto poder ser tratado de maneira genérica, independentemente da sua classe específica. Isso significa que objetos de diferentes classes podem ser utilizados de forma transparente através de uma interface comum, permitindo que métodos com o mesmo nome se comportem de maneira diferente, de acordo com a implementação em cada classe. Essa flexibilidade facilita o desenvolvimento de código mais genérico, reutilizável e de fácil manutenção.

Comentando as incorretas:

Claro, vamos comentar as outras alternativas:

A) Um padrão de design de software que envolve a criação de objetos imutáveis.

- Essa definição se refere mais ao conceito de imutabilidade, que é um padrão de design de software, mas não está diretamente relacionado ao polimorfismo. A imutabilidade se refere à incapacidade de modificar o estado de um objeto após sua criação, o que pode trazer benefícios em termos de concorrência e segurança, mas não está ligada ao polimorfismo.

C) Uma classe que não pode ser instanciada diretamente, sendo modelo de classes.

- Essa descrição se encaixa mais no conceito de classe abstrata. Uma classe abstrata é uma classe que não pode ser instanciada diretamente e que pode servir como modelo para outras classes. Embora a classe abstrata possa estar relacionada ao polimorfismo, pois pode definir métodos que serão implementados de forma diferente em suas subclasses, a definição dada não descreve diretamente o polimorfismo.

D) Um conceito que envolve a proteção de atributos de uma classe.

- Essa definição se refere mais ao encapsulamento, que é outro princípio da programação orientada a objetos, e não ao polimorfismo. O encapsulamento envolve o ocultamento dos detalhes de implementação de uma classe, protegendo seus atributos e métodos de acesso não autorizado, mas não está diretamente relacionado ao polimorfismo.

E) Uma forma de criptografar informações em objetos, serializando os dados.

- Essa descrição se refere mais à serialização de objetos, que é o processo de converter um objeto em uma sequência de bytes para que possa ser armazenado em um arquivo, transmitido pela rede ou persistido em um banco de dados. A serialização não está diretamente relacionada ao polimorfismo, que se concentra na capacidade de objetos de diferentes classes serem tratados de forma genérica.

O mais correto não seria "Técnica em que Métodos de diferentes classes são tratados da mesma forma." ? :p

Clique para visualizar este comentário

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