Princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma identificação (assinatura) mas comportamentos distintos, especializados para cada classe derivada, usando para tanto uma referência a um objeto do tipo da superclasse. O texto acima refere-se a(o):
- A)Polimorfismo
Certa: descreve exatamente o uso de uma mesma assinatura com comportamentos diferentes em subclasses, acessadas por referência da superclasse.
- B)Herança
Errada: herança é o mecanismo que cria a relação entre superclasse e subclasses, mas não é o princípio de executar comportamentos distintos para a mesma chamada.
- C)Abstração
Errada: abstração foca em destacar o essencial e esconder detalhes, não em permitir diferentes respostas para o mesmo método.
- D)Sobrescrita
Errada: sobrescrita é o recurso técnico usado nas classes filhas, mas o conceito mais amplo descrito no enunciado é o polimorfismo.
- E)Encapsulamento
Errada: encapsulamento protege atributos e controla o acesso aos dados, sem relação direta com múltiplos comportamentos de um mesmo método.
Gabarito: A
A questão descreve o polimorfismo, um dos pilares da orientação a objetos. A ideia central é simples: uma mesma interface ou assinatura de método pode produzir comportamentos diferentes conforme o objeto real que está por trás da referência. Em outras palavras, você chama o mesmo método, mas cada classe filha responde do seu jeito, como uma equipe em que todo mundo atende pelo mesmo “alô”, só que cada um resolve a coisa de um modo. Isso acontece muito quando você usa uma referência do tipo da superclasse para apontar para objetos de subclasses. Na hora da execução, o sistema escolhe qual implementação do método deve ser usada, com base no tipo real do objeto. Esse é justamente o princípio descrito no enunciado: mesma assinatura, comportamentos especializados e uso de referência da superclasse. Por isso, o gabarito é a alternativa A. Em doutrina de OO, esse comportamento é chamado de polimorfismo, especialmente o polimorfismo por sobrescrita (ou de inclusão), em que métodos com a mesma assinatura assumem versões diferentes nas subclasses. Não é herança, porque herança é a relação estrutural entre classes; não é abstração, que trata de modelar o essencial; e não é encapsulamento, que protege o acesso aos dados. Se quiser guardar uma regra prática: herança organiza a hierarquia, encapsulamento protege, abstração simplifica e polimorfismo faz o mesmo método ter várias “caras”. Essa questão mistura herança com o efeito visível em tempo de execução, mas o nome do princípio pedido é polimorfismo.