Imagem de fundo

Em linguagens orientadas a objetos com suporte a despacho...

Em linguagens orientadas a objetos com suporte a despacho dinâmico, o polimorfismo pode se manifestar como sobrecarga (overloading) ou sobrescrita (overriding), mecanismos com semânticas e momentos de resolução distintos. Nesse sentido, assinale a alternativa correta.


A

A sobrescrita (overriding) é resolvida em tempo de compilação: o compilador determina qual implementação invocar com base no tipo estático (declarado) da variável, não no tipo real do objeto em tempo de execução.


B

A sobrescrita (overriding) exige que a subclasse forneça nova implementação para um método da superclasse com a mesma assinatura; quando o método participa de despacho dinâmico — como métodos virtuais em C++ ou métodos de instância sobrescrevíveis em Java —, a chamada via referência para a classe base é resolvida em tempo de execução com base no tipo real do objeto.


C

A sobrecarga (overloading) permite que uma subclasse redefina um método herdado da superclasse; a versão a ser invocada é determinada dinamicamente pelo tipo real do objeto receptor em tempo de execução.


D

A ligação dinâmica (dynamic binding) é o mecanismo de resolução da sobrecarga de métodos, pois o compilador não consegue determinar, em tempo de compilação, qual versão sobrecarregada deve ser chamada.


E

Em C++, a simples redefinição de um método da classe base em uma classe derivada produz polimorfismo dinâmico, independentemente de o método da classe base ser declarado como virtual.