(Enade, 2025) Programação Orientada a Objetos (POO) é um paradigma que estrutura o software em torno de objetos — entidades autônomas que combinam estado (dados) e comportamento (métodos). Diferente de abordagens puramente procedurais, a POO prioriza a modelagem de sistemas como conjuntos de componentes reutilizáveis e de fácil manutenção, sustentada por três pilares fundamentais: encapsulamento, herança e polimorfismo. Dentre eles, o polimorfismo destaca-se como um dos mecanismos mais estratégicos para promover flexibilidade e extensibilidade na arquitetura de software, permitindo que diferentes implementações coexistam sob uma mesma interface. Diante desse contexto, sobre o conceito de polimorfismo em Programação Orientada a Objetos (POO), analise as assertivas abaixo e assinale V, se verdadeiras, ou F, se falsas.
( ) Polimorfismo é a capacidade de um objeto assumir diferentes formas, permitindo que métodos com o mesmo nome comportem-se de maneira distinta em diferentes classes que compartilham uma hierarquia.
( ) O polimorfismo em POO pode ser alcançado principalmente por meio de sobrescrita (overriding) de métodos e, em alguns contextos, também pela sobrecarga (overloading), embora esta última seja considerada polimorfismo de tempo de compilação.
( ) Em linguagens orientadas a objetos, o polimorfismo de inclusão (ou polimorfismo por subtipo) permite que um objeto de uma subclasse seja tratado como um objeto de sua superclasse.
( ) O polimorfismo é um mecanismo que visa aumentar a coesão e reduzir o acoplamento entre as classes, tornando o código mais flexível e extensível.
A ordem correta de preenchimento dos parênteses, de cima para baixo, é:
A V – V – V – V.
B F – V – V – V.
C V – F – V – V.
D V – V – F – V.
E V – V – V – F.
( ) Polimorfismo é a capacidade de um objeto assumir diferentes formas, permitindo que métodos com o mesmo nome comportem-se de maneira distinta em diferentes classes que compartilham uma hierarquia.
Verdadeira: polimorfismo é, por definição, a capacidade de um objeto assumir diferentes formas. Na POO, isso permite que métodos com o mesmo nome (assinatura) tenham comportamentos distintos dependendo da classe do objeto que os executa, desde que compartilhem uma hierarquia (superclasse ou interface comum).
( ) O polimorfismo em POO pode ser alcançado principalmente por meio de sobrescrita (overriding) de métodos e, em alguns contextos, também pela sobrecarga (overloading), embora esta última seja considerada polimorfismo de tempo de compilação.
Verdadeira: o polimorfismo é alcançado principalmente pela sobrescrita (overriding), que caracteriza o polimorfismo em tempo de execução (dinâmico). A sobrecarga (overloading) também é uma forma de polimorfismo, conhecida como polimorfismo em tempo de compilação (estático), pois o compilador decide qual método chamar com base nos tipos dos parâmetros.
( ) Em linguagens orientadas a objetos, o polimorfismo de inclusão (ou polimorfismo por subtipo) permite que um objeto de uma subclasse seja tratado como um objeto de sua superclasse.
Verdadeira: o polimorfismo de inclusão (ou por subtipo) é exatamente o princípio que permite que uma referência de uma superclasse (ou interface) aponte para um objeto de uma de suas subclasses, tratando-o como se fosse do tipo da superclasse.
( ) O polimorfismo é um mecanismo que visa aumentar a coesão e reduzir o acoplamento entre as classes, tornando o código mais flexível e extensível.
Verdadeira: ao permitir que o código interaja com abstrações (interfaces ou superclasses) em vez de implementações concretas, o polimorfismo reduz o acoplamento entre as classes. Além disso, ao delegar comportamentos específicos para subclasses especializadas, ele contribui para que cada classe tenha uma responsabilidade bem definida, favorecendo a alta coesão, a flexibilidade e a extensibilidade do sistema.
Conforme exposto, a resposta correta é:
A V – V – V – V.