Questão FC374717
A equipe de desenvolvimento da SEMCONGER está elaborando um sistema de gestão de frota de veículos oficiais. Diferentes abordagens de Programação Orientada a Objetos (POO) foram ut
Linguagens de Programação
Instituto Consulplan · 2025
A equipe de desenvolvimento da SEMCONGER está elaborando um sistema de gestão de frota de veículos oficiais. Diferentes abordagens de Programação Orientada a Objetos (POO) foram utilizadas para organizar o código de forma eficiente.
A seguir estão quatro trechos de código que implementam diferentes conceitos de POO; analise-os.
Código 1 – Classe base e Subclasse
public class Veiculo {
protected String modelo;
protected String cor;
}
public class Carro extends Veiculo {
private int portas;
}
Código 2 – Método Redefinido na Subclasse
public class Veiculo {
public void acelerar( ) {
System.out.println("O veículo está acelerando.");
}
}
public class Carro extends Veiculo {
@Override
public void acelerar( ) {
System.out.println("O carro está acelerando rapidamente.");
}
}
Código 3 – Controle de Acesso aos Atributos
public class Veiculo {
private String modelo;
public void setModelo(String modelo) {
this.modelo = modelo;
}
public String getModelo( ) {
return modelo;
}
}
Código 4 – Classe Não Instanciável
public abstract class Veiculo {
protected String modelo;
public abstract void acelerar( );
}
Com base nos códigos apresentados, assinale a alternativa que classifica corretamente os conceitos aplicados em cada um deles.
- Código 1. Encapsulamento; Código 2. Polimorfismo; Código 3. Herança; Código 4. Abstração.
- Código 1. Herança; Código 2. Polimorfismo; Código 3. Encapsulamento; Código 4. Abstração.
- Código 1. Polimorfismo; Código 2. Herança; Código 3. Encapsulamento; Código 4. Abstração.
- Código 1. Herança; Código 2. Abstração; Código 3. Polimorfismo; Código 4. Encapsulamento.
Mostrar resposta e comentário
Gabarito
B
Comentário do professor
Herança: no Código 1 a classe Carro usa extends Veiculo, reaproveitando atributos comuns (modelo, cor) definidos na classe base. Isso demonstra a hierarquia onde a subclasse herda características da superclasse.
Polimorfismo: no Código 2 a subclasse redefine o comportamento do método acelerar() usando @Override. Chamadas ao método podem resultar em implementações diferentes conforme o tipo real do objeto, caracterizando polimorfismo de subtipo.
Encapsulamento: no Código 3 o atributo modelo é private e acessado apenas por métodos públicos get/set, controlando leitura/escrita e protegendo o estado interno do objeto.
Abstração: no Código 4 a classe é abstract e declara o método abstrato acelerar(). A classe não pode ser instanciada e define apenas a interface conceitual que suas subclasses devem implementar.
Conteúdo do catálogo FC Concursos · Atualizado em