Questão de Programação — Programação Orientada a Objetos — Quadrix 2023
- Código
- qg026006
- Banca
- Quadrix
- Órgão
- CREA-GO
- Ano
- 2023
- Nível
- Superior
- Cargo
- Analista de Área - T.I
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: ERRADO. A afirmação confunde dois pilares distintos da programação orientada a objetos: a proteção de dados por meio de métodos públicos é característica do encapsulamento, e não da herança. A herança, por sua vez, é o mecanismo que permite que uma classe filha (subclasse) reutilize e estenda atributos e métodos de uma classe pai (superclasse).
Na programação orientada a objetos, os quatro pilares fundamentais são: abstração, encapsulamento, herança e polimorfismo. Cada um tem um papel específico:
Abstração: consiste em modelar objetos do mundo real, focando apenas nas características e comportamentos essenciais para o sistema, ignorando detalhes irrelevantes.
Encapsulamento: é o mecanismo que esconde os detalhes internos de um objeto, protegendo seus atributos e métodos. Em linguagens como Java, isso é feito declarando os atributos como private e fornecendo métodos públicos de acesso (getters e setters). O objetivo é impedir o acesso direto e indevido aos dados, garantindo a integridade do objeto.
Herança: é o mecanismo que permite que uma classe (subclasse ou classe filha) herde atributos e métodos de outra classe (superclasse ou classe pai). Isso promove a reutilização de código e a criação de hierarquias de classes. Por exemplo, uma classe Cachorro pode herdar de uma classe Animal, ganhando automaticamente os atributos e métodos definidos em Animal.
Polimorfismo: é a capacidade de um mesmo método ou atributo se comportar de maneiras diferentes em classes distintas. Pode ser estático (sobrecarga) ou dinâmico (sobrescrita).
A confusão entre herança e encapsulamento é um erro clássico em provas de concurso. A banca frequentemente troca as definições desses pilares para testar se o candidato realmente domina os conceitos. Nesta questão, a afirmação diz que "a principal característica da herança é que os dados dentro da classe são protegidos e acessíveis apenas por meio de métodos públicos", o que descreve perfeitamente o encapsulamento, não a herança.
Para fixar, veja a comparação:
Critério | Herança | Encapsulamento |
|---|---|---|
Definição | Mecanismo de reutilização de código entre classes | Mecanismo de proteção e ocultação de dados |
Objetivo | Estender e especializar comportamentos | Controlar o acesso aos atributos e métodos |
Como é implementado | Através de | Através de modificadores de acesso ( |
Exemplo |
| Atributos |
A banca trocou a definição de herança pela de encapsulamento. O candidato que não domina os pilares da POO pode marcar "Certo" por achar que a proteção de dados é uma característica da herança. Lembre-se: herança é sobre reutilização e hierarquia, encapsulamento é sobre proteção e ocultação.
A alternativa afirma que a principal característica da herança é a proteção de dados por métodos públicos. Isso está errado, pois essa é a definição de encapsulamento. A herança, na verdade, é o mecanismo que permite que uma classe filha herde atributos e métodos de uma classe pai, promovendo a reutilização de código e a criação de hierarquias. A banca inverteu os conceitos para confundir o candidato.
A alternativa está correta ao afirmar que a afirmação do enunciado é errada. A proteção de dados por métodos públicos é característica do encapsulamento, não da herança. A herança é o mecanismo de reutilização de código entre classes, permitindo que uma subclasse herde características de uma superclasse.
Gabarito: letra E
Link permanente: /questoes/qg026006