A respeito dos conceitos relacionados ao paradigma de Progra...
I. A herança entre classes possibilita que determinada classe, conhecida como superclasse, transfira toda a sua estrutura, incluindo atributos e métodos, para outras classes, conhecidas como classes filhas.
II. O encapsulamento propõe a ocultar detalhes de implementação e visibilidade dos dados das classes, o que aumenta a segurança e evita a manipulação indevida dos objetos.
III. Para a aplicação do polimorfismo em programas orientados a objetos é necessária a existência de uma hierarquia de classes, pois, na prática, este conceito se resume em substituir métodos e atributos herdados em uma classe filha para modificar o seu comportamento em relação à superclasse.
Está correto o que se afirma em
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: C - I e II, apenas.
Vamos explorar cada afirmativa para entender o motivo da alternativa C ser a correta:
I. A herança é um dos pilares da Programação Orientada a Objetos e permite que uma classe, chamada de subclasse ou classe derivada, herde atributos e métodos de outra classe, conhecida como superclasse ou classe base. Porém, é importante destacar que a herança não é uma transferência completa no sentido de "mover" algo de um lugar para outro, mas sim uma forma de "reutilizar" e "estender" a estrutura e comportamento da superclasse. A superclasse mantém suas características, e a subclasse adiciona ou modifica essas características. Esta afirmação é verdadeira.
II. O encapsulamento é outro pilar fundamental da POO que consiste em ocultar os detalhes internos do funcionamento de uma classe e expor apenas o necessário para o uso externo. Isso é obtido através do controle de visibilidade dos membros de classe (atributos e métodos) utilizando modificadores de acesso como private, protected e public. Essa proteção ajuda a prevenir modificações não autorizadas e promove a segurança e a integridade dos dados. Esta afirmação é verdadeira.
III. Polimorfismo é um conceito que permite que objetos de diferentes classes sejam tratados de maneira unificada através de uma interface comum, normalmente uma superclasse. Contudo, a afirmação de que polimorfismo se resume a substituir métodos e atributos herdados na classe filha é uma interpretação limitada do conceito. O polimorfismo permite que um mesmo método possa ser implementado de múltiplas formas entre classes relacionadas na hierarquia (sobrescrita de métodos), mas também pode ser alcançado por meio de sobrecarga de métodos (métodos com o mesmo nome, mas com parâmetros diferentes), que não necessariamente envolvem hierarquia de classes. Assim, a afirmação III não está totalmente correta ao restringir o conceito de polimorfismo apenas à sobreposição de métodos e atributos em uma hierarquia de classes. Esta afirmação é falsa.
Portanto, apenas as afirmações I e II estão corretas, o que torna a alternativa C a resposta certa para esta questã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
a) CORRETA
b) CORRETA
c) INCORRETA. A herança é aplicada apenas no polimorfismo dinâmico (ocorre quando uma classe possui um método com mesmo nome e mesma assinatura que um método de sua superclasse). O estático (ocorre quando uma classe possui métodos com mesmo nome, entretanto assinaturas diferentes) não utiliza herança.
Afirmativa I: Correta. A herança é um conceito da POO que permite que uma classe herde as características de outra classe. A classe que fornece as características é chamada de superclasse e a classe que as recebe é chamada de subclasse. Na prática, a herança permite que as subclasses reaproveitem o código da superclasse, o que pode levar a um código mais conciso e eficiente.
Afirmativa II: Correta. O encapsulamento é um conceito da POO que visa ocultar os detalhes de implementação dos dados e métodos de uma classe. Isso pode ser feito usando modificadores de acesso, como e . O encapsulamento aumenta a segurança do código, pois evita que os dados e métodos sejam manipulados indevidamente.
Afirmativa III: Correta. O polimorfismo é um conceito da POO que permite que objetos de classes diferentes respondam de forma diferente a uma mesma mensagem. Na prática, o polimorfismo é implementado usando sobrecarga de métodos e sobreposição de métodos. Para que o polimorfismo funcione, é necessário que existam classes herdadas da mesma superclasse.
Portanto, todas as afirmativas são corretas.
Fonte: Bard.
Segundo o chatGPT, o erro da III está em dizer: substituir métodos e atributos.
Explicação do chatGPT:
O polimorfismo em programação orientada a objetos baseia-se na capacidade de objetos de diferentes classes responderem de maneira distinta a uma mesma mensagem ou invocação de método. Isso geralmente ocorre por meio da herança e da substituição (ou sobreposição) de métodos das classes filhas para modificar ou estender seu comportamento em relação à superclasse.
Aqui está uma reformulação mais precisa da afirmação:
"Para a aplicação do polimorfismo em programas orientados a objetos, é necessária a existência de uma hierarquia de classes, pois este conceito permite substituir métodos herdados em uma classe filha para modificar ou estender seu comportamento em relação à superclasse. No entanto, a modificação direta de atributos herdados não faz parte do polimorfismo, já que os atributos não podem ser redefinidos ou sobrepostos na classe filha."
polimorfismo dinâmico – envolve 2 classes (classe derivada herda e redefine método da classe base);
Polimorfismo estático – métodos com mesmo nome e assinaturas diferentes na mesma classe (sobrecarga).
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo