Modificador protected - dúvida.[RESOLVIDA]

2 respostas
guj1

Dado o código abaixo eu porgunto…

public class Animal {
	
	protected double peso;
	String comida;
}

public class Galinha {
	
	void imprimePeso() {
		Animal a = new Animal();
		System.out.println(a.peso);	 // Mesmo sem estender a classe Animal, consigo acessar o atributo peso.
	}
}

Porque isso acontece?

2 Respostas

ViniGodoy

Por que as duas classes estão no mesmo pacote.

Num mesmo pacote, tudo o que não é private, é visível, não interessa o modificador de visibilidade utilizado.

A diferença está somente entre pacotes diferentes:
public - Visível em qualquer pacote
default - Visível no mesmo pacote, não visível em outros pacotes
protected - Visível no mesmo pacote, visível para classes filhas (em qualquer pacote), invisível em outros pacotes;
private - Visível somente na classe onde foi declarada.

guj1

Pocha!

Muito obrigado!
Quando eu passar na prova de certificação vou lembrar dos seus esforços aqui no fórum!

Criado 3 de março de 2014
Ultima resposta 3 de mar. de 2014
Respostas 2
Participantes 2