Questão de Programação — Linguagens de programação — Quadrix 2024
- Código
- qg352887
- Banca
- Quadrix
- Órgão
- CRQ - 12ª Região (GO, TO e DF)
- Ano
- 2024
- Nível
- Superior
- Cargo
- Analista de T.I.
- CCerto
- EErrado
GabaritoC — Certo
Gabarito: C — CERTO. O polimorfismo paramétrico é, de fato, uma forma de tornar uma linguagem mais expressiva, pois permite que uma mesma função ou tipo opere sobre uma variedade de tipos de dados sem necessidade de reescrita, aumentando a capacidade de abstração e reutilização de código. Essa é uma característica fundamental de linguagens como Java (com generics), C++ (com templates) e Python (com type hints e duck typing).
O polimorfismo, em termos gerais, é a capacidade de um objeto ou função assumir múltiplas formas. Na programação orientada a objetos, ele se manifesta de diferentes maneiras, sendo o polimorfismo paramétrico uma das mais poderosas. Ele permite que uma função ou classe seja escrita de forma genérica, capaz de operar com qualquer tipo de dado que satisfaça certos requisitos, sem que seja necessário criar versões específicas para cada tipo. Isso torna o código mais flexível, reutilizável e, consequentemente, mais expressivo, pois o programador pode expressar intenções mais abstratas e gerais.
A expressividade de uma linguagem está diretamente ligada à sua capacidade de permitir que o programador escreva código de forma concisa e clara, representando conceitos complexos com menos esforço. O polimorfismo paramétrico contribui para isso ao eliminar a necessidade de duplicação de código para diferentes tipos, permitindo que algoritmos sejam escritos uma única vez e aplicados a uma infinidade de situações. Por exemplo, uma função ordenar(lista) pode ser escrita para funcionar com listas de inteiros, strings ou objetos personalizados, desde que esses tipos definam um critério de comparação. Essa generalização é uma marca da expressividade.
É importante distinguir o polimorfismo paramétrico de outros tipos de polimorfismo, como o de subtipo (ou de inclusão) e o ad hoc (ou por sobrecarga). O polimorfismo de subtipo é aquele em que um objeto de uma classe derivada pode ser tratado como um objeto da classe base, permitindo que métodos sejam sobrescritos e chamados de forma polimórfica. Já o polimorfismo ad hoc permite que uma mesma função tenha diferentes implementações para diferentes tipos de argumentos, como na sobrecarga de métodos. O paramétrico, por sua vez, é mais geral, pois a função é escrita de forma independente do tipo, sendo parametrizada por ele.
A banca explora aqui um conceito teórico da POO, e a afirmação é uma verdade fundamental. O candidato que confunde polimorfismo paramétrico com outros tipos, ou que não compreende o que é expressividade, pode marcar errado. A chave é entender que a capacidade de escrever código genérico e reutilizável é um dos pilares da expressividade em linguagens de programação modernas.
A afirmação está correta. O polimorfismo paramétrico, também conhecido como generics ou templates, permite que funções e tipos sejam definidos de forma genérica, operando sobre uma variedade de tipos de dados. Essa capacidade de abstração e reutilização de código torna a linguagem mais expressiva, pois o programador pode expressar algoritmos de forma mais concisa e geral, sem duplicação de código para cada tipo específico. Linguagens como Java, C++, C# e Python (com type hints) implementam esse conceito, demonstrando sua importância para a expressividade e a produtividade no desenvolvimento de software.
Gabarito: C — CERTO.
Link permanente: /questoes/qg352887