Questão de Programação — Programação Orientada a Objetos — Quadrix 2024
- Código
- qg347826
- Banca
- Quadrix
- Órgão
- COREN-PR
- Ano
- 2024
- Nível
- Superior
- Cargo
- Analista de Tecnologia da Informação
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: ERRADO. A afirmativa confunde polimorfismo com herança: polimorfismo é a capacidade de um mesmo método/atributo se comportar de formas diferentes em objetos distintos, enquanto herança é o mecanismo pelo qual uma classe derivada herda métodos e propriedades de uma classe base. A banca trocou os conceitos — o item descreve herança, não polimorfismo.
Na Programação Orientada a Objetos (POO), os quatro pilares fundamentais são: abstração, encapsulamento, herança e polimorfismo. Cada um tem um papel distinto, e é exatamente essa distinção que a questão explora.
Herança é o mecanismo que permite que uma classe (subclasse ou classe derivada) aproveite atributos e métodos de outra classe (superclasse ou classe base). É uma relação "é um" (ex.: Cachorro é um Animal). A subclasse herda tudo o que a superclasse define, podendo adicionar novos membros ou sobrescrever os existentes. É a base para a reutilização de código e para a criação de hierarquias de classes.
Polimorfismo (do grego, "muitas formas") é a capacidade de um mesmo método (ou operação) se comportar de maneiras diferentes dependendo do objeto que o invoca. Em termos práticos, significa que objetos de classes diferentes podem responder à mesma mensagem (chamada de método) de formas distintas. O polimorfismo pode ser:
Estático (sobrecarga/overload): ocorre dentro da mesma classe, quando há métodos com o mesmo nome, mas com assinaturas diferentes (parâmetros diferentes). A decisão de qual método chamar é feita em tempo de compilação.
Dinâmico (sobrescrita/override): ocorre entre classes diferentes, quando uma subclasse redefine um método da superclasse. A decisão de qual implementação executar é feita em tempo de execução, com base no tipo real do objeto.
Um exemplo clássico: uma classe Animal define o método fazerSom(). As subclasses Cachorro e Gato sobrescrevem esse método, cada uma com sua implementação ("Au au" e "Miau"). Ao chamar fazerSom() em uma referência do tipo Animal, o comportamento será diferente conforme o objeto real seja um Cachorro ou um Gato. Isso é polimorfismo dinâmico.
A confusão entre herança e polimorfismo é comum, mas a distinção é clara: herança é o mecanismo de reutilização de código; polimorfismo é a capacidade de um mesmo método ter múltiplas formas de comportamento. A afirmativa do enunciado descreve exatamente a herança, não o polimorfismo.
A banca trocou os conceitos de herança e polimorfismo. O candidato que memoriza as definições de forma superficial pode marcar "Certo", achando que a frase descreve polimorfismo. Mas a frase "capacidade de uma classe derivada de herdar métodos e propriedades de uma classe base" é a definição literal de herança. Polimorfismo seria algo como "capacidade de um mesmo método se comportar de formas diferentes em objetos distintos". Fique atento a essas trocas — elas são frequentes em provas de POO.
A afirmativa está errada porque descreve o conceito de herança, não de polimorfismo. Herança é o mecanismo pelo qual uma classe derivada (subclasse) herda métodos e propriedades de uma classe base (superclasse). Polimorfismo, por sua vez, é a capacidade de um mesmo método (ou operação) se comportar de maneiras diferentes dependendo do objeto que o invoca. A banca inverteu os conceitos, e o item deve ser julgado como ERRADO.
Gabarito: ERRADO
Link permanente: /questoes/qg347826