No que se refere a programação orientada a objeto, julgue o ...
Por conterem referências às suas próprias classes, os objetos são mais vulneráveis a combinações incompatíveis de tipos do que as variáveis da programação convencional, o que impede a verificação dinâmica da satisfação dos pressupostos de um método.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: E - errado.
Na Programação Orientada a Objetos (POO), objetos contendo referências às suas próprias classes não são, por esse motivo, mais vulneráveis a combinações incompatíveis de tipos. Pelo contrário, a POO promove o uso de tipagem forte e mecanismos de verificação de tipos, como a verificação de tipo em tempo de compilação e, em algumas linguagens, até mesmo em tempo de execução, o que é conhecido como verificação dinâmica de tipos.
Adicionalmente, a POO utiliza o conceito de polimorfismo, que permite que um objeto seja tratado como sendo de um tipo que corresponda a algum ponto de sua hierarquia de herança, sem que isso represente problemas de incompatibilidade de tipos. Portanto, um método esperando receber um tipo particular de objeto não será "enganado" por um objeto de outro tipo, evitando assim as combinações incompatíveis de tipos mencionadas. A verificação de tipos, seja em tempo de compilação ou execução, assegura que os pressupostos de um método sejam satisfeitos antes de sua execução.
Além disso, a maioria das linguagens de programação orientadas a objetos possui estruturas de tratamento de exceção (como try-catch em Java ou C#), que permitem a identificação e o manejo adequado de erros decorrentes de tipos incompatíveis de objetos, oferecendo assim um modelo robusto de verificação e garantia de tipos.
Portanto, a afirmação de que a orientação a objetos torna os tipos mais vulneráveis a combinações incompatíveis é equivocada, e a capacidade de verificação de pressupostos de um método não é impedida pela referência de objetos às suas próprias classes.
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 compatibilidade fica maior por conta do polimorfismo. Interpretei dessa forma.
é possível fazer verificação dinâmica de tipos Ex:if(bichos[i] instanceof Gato){...}
A verificação dinâmica de tipos pode ser feita por polimorfismo de coerção.
Tipos de polimorfismo -> universal (podendo ser paramétrico ou de sobrescrita) e adhoc (podendo ser de sobrecarga ou coerção).
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo