Na Análise Orientada a Objetos, o princípio pelo qual duas o...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é: D - polimorfismo
Vamos começar explicando o conceito de polimorfismo, pois ele é central para entender por que essa é a resposta correta.
Em Análise Orientada a Objetos, o polimorfismo é um princípio que permite que classes derivadas de uma mesma superclasse possam invocar métodos que têm a mesma assinatura, mas comportamentos diferentes. Isso é possível porque, através da herança, cada classe filha pode sobrescrever os métodos da classe pai, adaptando-os às suas necessidades específicas.
O polimorfismo é frequentemente implementado com o uso de referências de objetos do tipo da superclasse, permitindo que o método apropriado seja chamado conforme o tipo real do objeto em tempo de execução. Isso facilita a construção de sistemas mais flexíveis e extensíveis.
Agora, vamos analisar as alternativas incorretas:
A - encapsulamento: Encapsulamento é o princípio de ocultar os detalhes internos de uma classe e expor apenas o que é necessário através de métodos públicos. Ele ajuda a proteger o estado interno do objeto e facilita a manutenção do código, mas não está diretamente relacionado à capacidade de invocar métodos com a mesma assinatura em classes derivadas.
B - independência: Este termo não é comumente usado em Análise Orientada a Objetos como um dos princípios fundamentais. Pode se referir à ideia de modularidade e baixo acoplamento, mas não se relaciona com a invocação de métodos com comportamentos distintos em classes derivadas.
C - modularidade: Modularidade refere-se à divisão de um sistema em partes menores e mais manejáveis. Embora importante, esse conceito está mais ligado à organização e estrutura do código do que à capacidade específica de invocar métodos com a mesma assinatura mas comportamentos diferentes.
E - herança: Herança é o mecanismo pelo qual uma classe pode derivar de outra, herdando seus métodos e atributos. Embora a herança seja um pré-requisito para o polimorfismo, ela própria não garante a invocação de métodos com comportamentos diferentes. O polimorfismo depende da herança, mas é um conceito mais específico.
Portanto, a questão aborda o tema do polimorfismo e exige que o aluno entenda não apenas o conceito de herança, mas também como as classes derivadas podem implementar métodos de maneira personalizada, usando uma referência ao tipo da superclasse para invocar esses métodos.
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
Trata-se de polimorfismo ou sobreposição.
Se fosse com assinaturas diferentes, seria sobrecarga
Uma grande vantagem do encapsulamento é que toda parte encapsulada pode ser modificada sem que os usuários da classe em questão sejam afetados. O encapsulamento protege o acesso direto (referência) aos atributos de uma instância fora da classe onde estes foram declarados. Esta proteção consiste em se usar modificadores de acesso mais restritivos sobre os atributos definidos na classe. Depois devem ser criados métodos para manipular de forma indireta os atributos da classe.
Modularidade
Programação modular denota a construção de programas pela composição de partes pequenas para formar partes maiores. As partes são chamadas módulos. A programação com módulos também pode ser chamada `programming in the large', contrastando com `programming in the small'. Esta técnica de programação é baseada no princípio filosófico `Dividir para conquistar', o qual sugere que um problema complexo seja dividido em subproblemas que possam ser resolvidos separadamente.
Polimorfismo permite que referências de tipos de classes mais abstratas representem o comportamento das classes concretas que referenciam. Assim, é possível tratar vários tipos de maneira homogênea (através da interface do tipo mais abstrato). O termo polimorfismo é originário do grego e significa "muitas formas" (poli = muitas, morphos = formas).
O polimorfismo é caracterizado quando duas ou mais classes distintas tem métodos de mesmo nome, de forma que uma função possa utilizar um objeto de qualquer uma das classes polimórficas, sem necessidade de tratar de forma diferenciada conforme a classe do objeto.
Herança (ou generalização)
É o mecanismo pelo qual uma classe (sub-classe) pode estender outra classe (super-classe), aproveitando seus comportamentos (métodos) e variáveis possíveis (atributos). Um exemplo de herança: Mamífero é super-classe de Humano. Ou seja, um Humano é um mamífero. Há herança múltipla quando uma sub-classe possui mais de uma super-classe. Essa relação é normalmente chamada de relação "é um".
Polimorfismo envolve em um mesmo metodo poder assumir comportamentos distintos de acordo com os parametros passados. pode ser overloading e overriding
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo