Orientação a Objetos: Mecanismo de Extensão entre Classes
Gabarito: letra B. O mecanismo pelo qual uma classe pode estender outra classe (ou ser estendida) é a herança (inheritance). Herança permite que uma subclasse reutilize e estenda atributos e métodos de uma superclasse. As demais alternativas referem-se a outros conceitos: interface define contrato, pacotes organizam classes, agregação é um tipo de associação, e encapsulamento protege dados.
Alternativa | Conceito | Descrição | Relação com o enunciado | Correta? |
|---|
A | Interface | Contrato que define métodos a serem implementados, sem fornecer código | Não permite extensão direta de código-fonte | ❌ |
B | Herança | Mecanismo pelo qual uma classe estende outra, herdando atributos e métodos | Permite que Carro e Moto aproveitem código de Veículo | ✅ |
C | Pacotes | Agrupamento lógico de classes para organização | Não define relação de extensão entre classes | ❌ |
D | Agregação | Relacionamento "todo-parte" (has-a) | Não é herança (is-a) | ❌ |
E | Encapsulamento | Princípio de ocultar detalhes internos e expor interfaces | Não é mecanismo de extensão | ❌ |
Alternativa B — ✅ Correta ⟵ GABARITO
A herança é o mecanismo fundamental de reuso e extensão em orientação a objetos. Permite que uma classe (subclasse) herde membros de outra (superclasse), possibilitando a adição ou sobrescrita de comportamentos. No enunciado, Veículo é a superclasse, Carro e Moto são subclasses que "aproveitam os métodos e atributos" por herança.
Alternativa A — ❌ Incorreta
Interface é um contrato que define um conjunto de métodos que uma classe deve implementar, mas não fornece implementação nem permite extensão direta de código. Não é o mecanismo de estender classes, mas de especificar comportamentos.
Alternativa C — ❌ Incorreta
Pacotes (packages) são agrupamentos lógicos de classes para organização e controle de namespace. Não definem relação de herança.
Alternativa D — ❌ Incorreta
Agregação é um tipo de relacionamento "todo-parte", onde uma classe contém referências a outras, mas não há herança de comportamento. Representa um "tem um" (has-a), não um "é um" (is-a).
Alternativa E — ❌ Incorreta
Encapsulamento é o princípio de ocultar detalhes internos de uma classe, expondo apenas interfaces públicas. Não se trata de mecanismo de extensão entre classes.
Gabarito: letra B.