Informática, perguntado por raphaelqueiroz, 1 ano atrás

Analise o código abaixo:

package garagem;
public class Automovel {
protected Integer ano;
}

package garagem;
public class Carro extends Automovel {
protected String placa;
}

public principal;
public class MeuSoftware {
public static void main (String [] args) {
Carro c = newCarro ();
c.ano = 2011;
c.placa = "JMA-3034";
System.out.println (c.placa + " - " + c.ano);
}
}

Sobre ele, podemos afirmar que:
a) Compreende um erro de compilação, pois os atributos protected não podem ser utilizados fora do pacote de origem
b) Exibirá no log do programa a frase: JMA-3034 + - + 2011.
c) O programa compila, mas exibe uma exceção que imprime a forma incorreta de acesso a atributos protected.
d) O programa compila e exibe no log a frase: JMA-3034 - 2011.

Soluções para a tarefa

Respondido por danilobandeira
5
c) O programa compila, mas exibe uma exceção que imprime a forma incorreta de acesso a atributos protected.

Coloquei esta a resposta porque achei a mais apropriada entre a  Alternativa (A) e a (C). De fato existe um erro pois a classe MeuSoftware não tem acesso aos atributos "ano" e "placa". A unica solução neste caso seria colocar os atributos como púbico para que esta classe tivesse acesso as dois ao mesmo tempo.

A alternativa A está errada porque um atributo pode sim ser utilizado fora do pacote de origem, desde que a classe que faz uso dele seja herdeira da classe que o possui. Porém tem um detalhe, as classes em Java só podem herdar de apenas uma classe.
Perguntas interessantes