Em linguagem Java sabe qual a diferença entre utilizar o Modificador de Acesso "protected" e "default" (não colocar nenhum modificador)? Essa é a pergunta campeã em matéria de dúvidas, antes de mais nada temos três modificadores de acesso:
- public - acesso total e irrestrito.
- private - acesso restrito a classe que o criou.
- protected - acesso restrito ao mesmo pacote (pelo menos é assim que as pessoas entendem).
package p1;
public class Pai {
protected int metodo() {
return 42;
}
}
----------------------------------------------------
package p2;
public class Filho extends p1.Pai {
public static void main(String [] args) {
new Filho().teste();
}
public void teste() {
System.out.println("Tenho o valor " + metodo());
}
}
Temos uma classe Pai no pacote p1 e uma classe Filho no pacote p2 que herda a classe Pai no outro pacote e tudo funciona normalmente, porém se retiramos a palavra protected da classe Pai o código de filho não compilará mais. Então vamos mudar a definição do modificador protected:- protected - acesso restrito ao mesmo pacote ou subclasses de outros pacotes.
- default - acesso restrito ao mesmo pacote.
Isso significa que na linha de restrição: 1. private, 2. default, 3. protected e 4. public.
Obrigado e até a próxima
Fernando Anselmo