FC ConcursosFC Concursos

Questão FC374719

Considere o seguinte trecho de código em Java: public class Veiculo { private String marca; private String modelo; public Veiculo(String marca, String modelo) { this.marca = marca;

Linguagens de Programação

Instituto Consulplan · 2025

Considere o seguinte trecho de código em Java:

 

public class Veiculo {

    private String marca;

    private String modelo;

 

    public Veiculo(String marca, String modelo) {

        this.marca = marca;

        this.modelo = modelo;

    } 

 

    public void exibirDetalhes( ) {

        System.out.println("Marca: " + marca + ", Modelo: " + modelo);

    }

}

 

public class Carro extends Veiculo {

    private int ano;

 

    public Carro(String marca, String modelo, int ano) {

        super(marca, modelo);

        this.ano = ano;

    }

 

   @Override

   public void exibirDetalhes( ) {

       super.exibirDetalhes( );

       System.out.println("Ano: " + ano);

   }

}

 

Com base no código, analise as afirmativas a seguir.

 

I. A classe Carro herda os atributos marca e modelo da classe Veiculo.

 

II. O método exibirDetalhes na classe Carro sobrescreve o método da classe Veiculo.

 

III. Os atributos marca e modelo podem ser acessados diretamente na classe Carro.

 

IV. A palavra-chave super é usada para chamar o construtor da classe pai.

 

Está correto o que se afirma apenas em

  1. I e III.
  2. II e IV.
  3. I, II e IV.
  4. I, III e IV.
Mostrar resposta e comentário

Gabarito

Certo

Comentário do professor

A afirmativa I é correta porque a classe Carro estende Veiculo, ou seja, ela herda os atributos declarados em Veiculo (fazem parte do objeto). Note que, apesar de herdados, atributos com modificador private não ficam acessíveis diretamente na subclasse — permanecem encapsulados na classe pai.

A afirmativa II é correta: o método exibirDetalhes() em Carro possui a mesma assinatura do método da superclasse e está anotado com @Override, caracterizando a sobrescrita (override). Em tempo de execução a chamada ao método será resolvida dinamicamente pela implementação concreta do objeto.

A afirmativa IV é correta porque a chamada super(marca, modelo) no construtor de Carro invoca explicitamente o construtor da classe pai Veiculo. Em Java, usar super com parâmetros dentro do construtor faz essa ligação e deve ser a primeira instrução do construtor.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo