Iae galera. Seguinte, pesquisando aqui no forum, li alguns topicos em relação ao modificador Protected mas ainda não intendi direito. Até onde eu sei, o modificador Protected dá acesso ás classes de seu próprio pacote e também às suas filhas, certo? Então por que meu exemplo não funciona?
public class TesteUm extends TesteDois{
public static void main(String[] args) {
pacotedois.TesteDois testedois = new TesteDois();
System.out.println(testedois.x);
}
}[/code]
Se eu mudo minha variável x para public, ai funciona beleza. Mas se o Protected vale para classes do mesmo pacote E também para suas classes filhas, por que meu exemplo não roda?
Se não me engano protected só libera acesso para a própria classe e suas subclasses,
não para as outras classes do pacote
" Métodos e atributos declarados como protected possuem um nível intermediário de
proteção. Um membro protected é como um membro private, exceto pelo fato de
que ele pode ser acessado pelas classes derivadas de uma superclasse. Cada vez que
deseja-se utilizar algum método da superclasse, utiliza-se a palavra-chave super
seguida pelo operador ponto (. )." JAVA MAGAZINE http://www.unesp.br/gs/treinamento/java/guj-oop.pdf
Então cara, está exatamente desta forma que vc postou meu codigo. Mas ao imprimir o TesteDois.x, ele nao compila, diz que a variavel não está visivel. Obs: a variavel x está como protected na classe TesteDois.