class veiculo {
private String modelo;
protected String cor;
public int ano;
public Veiculo(String modelo, String cor, int ano) {
this.modelo = modelo;
this.cor = cor;
this.ano = ano;
}
protected void mostrarCor() {
System.out.println( }
}
class Carro extends Veiculo {
public Carro(String modelo, String cor, int ano) {
super(modelo, cor, ano);
}
Por que o atributo modelo não pode ser acessado diretamente na classe Carro?

Passo 1

Beleza, vamos lá! O exercício pede pra gente entender por que o atributo modelo não pode ser acessado diretamente na classe Carro. A gente tá lidando com herança e modificadores de acesso na programação orientada a objetos, especificamente em Java. Pra resolver isso, vamos precisar saber como funcionam os diferentes níveis de acesso (private, protected, public) nos atributos das classes.

Passo 2

Primeiro, vamos dar uma olhada na classe Veiculo. Ela tem três atributos:
  • private String modelo;
  • protected String cor;
  • public int ano;
O atributo que tá causando a dúvida é o modelo, que é private. Em Java, quando um atributo é declarado como private, isso significa que ele só pode ser acessado dentro da própria classe onde foi definido. Ou seja, apenas a classe Veiculo pode ver e manipular diretamente o modelo.

Passo 3

Agora, vamos ver a classe Carro que estende Veiculo. Isso significa que Carro herda os atributos e métodos de Veiculo. Porém, aí entra a regra dos modificadores de acesso:
  • private: Só a própria classe pode acessar.
  • protected: A classe e suas subclasses podem acessar.
  • public: Qualquer classe pode acessar.
Como o modelo é private, mesmo a classe Carro que herda de Veiculo não consegue acessar diretamente esse atributo. Já o atributo cor, que é protected, pode ser acessado pela Carro sem problemas.

Resposta

O atributo modelo não pode ser acessado diretamente na classe Carro porque ele foi declarado como private na classe Veiculo, o que restringe seu acesso apenas à própria classe Veiculo e impede que subclasses como Carro o acessem diretamente.

Exercícios relacionados