Polimorfismo em C#
Gabarito: letra E. Polimorfismo é a capacidade de uma variável de um tipo base referenciar objetos de tipos derivados, permitindo que o método invocado seja determinado em tempo de execução com base no tipo real do objeto. A alternativa E descreve exatamente esse conceito: "uma variável possa referenciar objetos de diferentes tipos".
Alternativa A — ❌ Incorreta
Descreve o princípio de substituição de Liskov (um comportamento de herança bem projetada), não o polimorfismo propriamente dito. O polimorfismo permite comportamentos diferentes para tipos diferentes, não necessariamente sem alterar o comportamento.
Alternativa B — ❌ Incorreta
Refere-se ao padrão de criação de objetos (Factory Method, etc.), não ao polimorfismo.
Alternativa C — ❌ Incorreta
Define herança, que é um mecanismo que possibilita o polimorfismo, mas não é o polimorfismo em si.
Alternativa D — ❌ Incorreta
Descreve a capacidade de instanciar múltiplos objetos de uma classe, o que é simplesmente criação de instâncias.
Alternativa E — ✅ Correta ⟵ GABARITO
Exatamente: polimorfismo permite que uma variável do tipo base aponte para objetos de classes derivadas, e ao chamar um método virtual, o comportamento é o da classe real do objeto. Em C#, isso é implementado com virtual e override.
Gabarito: letra E