Protected x Default

Vcs sabiam disso ?

:shock: :shock: :shock: :shock: :shock:


public class A {
    
    protected String user = "sergio";
    
}

public class B extends A {
    
}


public class C {
    
    public static void main(String [] args) {
        B b = new B();
        System.out.println("=> " + b.user);
    }
}

Pra mim protected só podia ser acessado por subclasses.

A única diferença de protected para default é que protected permite que classes herdeiras de fora do pacote tenham acesso.

Isto é, protected é menos restritivo que default. Protected contem default.

Sim, é exatamente isso.
private = somente a classe
default = mesmo pacote
protected = default + subclasses
public = qualquer classe em qualquer pacote

Yeap, sabia sim.
http://java.sun.com/docs/books/tutorial/java/javaOO/accesscontrol.html

Aprendi estudando pra prova :stuck_out_tongue:

Bom, no meu Deitel (livro) de Java eles dizem que protected dá acesso a classes que extendem e a classes amigas. Deve ser a isso que eles se referem quando falam em classes amigas.
:wink:

humm entaum classes amigas quer dizer que são classes do mesmo pacote!!! Dessa eu naum sabia!! :smiley:

Protected é exatamente isso. nada de mais

:slight_smile:

No Core Java 2, também explicam isso :thumbup: