Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Modificador Default ou Package

Olá boa tarde!

Tenho uma dúvida sobre, qual a diferença entre o package para o protected? Parecem iguais!

Fico no aguardo. Obrigado

2 respostas
solução!

Os modificadores de visibilidade no java são, private, default, protected, public, em ordem de menor para maior visibilidade, com default querendo dizer sem modificador

  • private ,Possui esse modificado só pode ser acessada pela própria classe
  • default, Permite os mesmo acesso que o private com a adição que pode ce acessado pro classes no mesmo pacote e subclasse no meso pacote
  • protected, Permite os mesmo acesso que o private com a diferença que subclasses em outros pacotes também pode acessar
  • public, Esse modificador permite o caso de qualquer lugar.

Exemplo: Possuo essa classe no pacote humano

package humano;

classe Pessoa{
    protected nome;
    protected idade;
    void imprimirInfo(){
        System.out.println("O nome é: " + this.userName + " e idade é" + this.idade);
    }
}

Agora por algum motivo quero criar uma subclasse dessa classe em outro lugar exemplo Trabalhador no pacote empresa.

package empresa;
import humano.Pessoa;

classe Trabalhador extends Pessoa{
    void anosDeServico;
    void imprimirInfo(){
        System.out.println("O nome é: " + this.userName + ", idade é" + this.idade+"e anos de serviço "+this.anosDeServico);
    }
}

Se os atributos de Pessoa não fossem protected mas sim default, eu só poderia acessar eles a partir da classe Trabalhador se ela estivesse no mesmo pacote ,humano.

Obrigado pelos esclarecimentos.