> public class Mae {
>     private   int x;
>     protected int y;
> }
> 
> public class Filha extends Mae {
>     // A FILHA HERDA O ATRIBUTO PRIVADO "X" E O ATRIBUTO PROTEGIDO "Y"
>     public Filha() {
>        x = 50;  // PERFEITAMENTE CORRETO
>        y = 100; // PERFEITAMENTE CORRETO
>     }
> }


Acho que houve um pequeno engano no seu exemplo.
A classe Filha nao vai nem compilar. 
A linha 

x = 50; 

vai gerar um erro, pois um atributo "private" eh privado mesmo, nem classes filhas 
podem ter acesso a esses atributos (ou mothods, se fosse o caso).
Em C++ existe o conceito de funcao/classe amiga, mas nada parecido existe em Java 
(ainda bem).

No exemplo, para poder escrever em X, apenas coloque assessors e pronto, o que eh 
muito mais OO.

 public class Mae {
     private   int x;
     protected int y;

    public int getX() {
        return x;
    }
    
    public void setX(int x) {
        this.x = x;
    }


 }
 
 public class Filha extends Mae {
     // A FILHA HERDA O ATRIBUTO PRIVADO "X" E O ATRIBUTO PROTEGIDO "Y"
     public Filha() {
        setX(50);  // PERFEITAMENTE CORRETO porque "setX" eh public
        //ou 
        super.setX(50); // que eh ainda mais claro
        y = 100; // PERFEITAMENTE CORRETO porque "y" eh protected
     }
 }


A classe filha herda o atributo "x", mas not tem direito de escrita ou leitura a esse 
valor. Ou seja, a variavel existe, ocupa espaco na memoria, mas nao pode ser 
manipulado por methodos das classes filhas.

No livro do Flanagan, Java in a nut shell, 2nd edicao, pg. 73 tem um quadro bem claro 
dos metodos de acesso.

visivel para:                      |  public  | protected  | package  | private
A mesma classe                     |     yes  |     yes    |    yes   |    yes
Classes no mesmo package           |     yes  |     yes    |    yes   |    no
subclasses em packages diferentes  |     yes  |     yes    |    no    |    no
non-subclass, e differente packages|     yes  |     no     |    no    |    no

De plantao no feriadao, escritorio vazio, e muito tempo para escrever emails....  :-)






------------------------------ LISTA SOUJAVA ---------------------------- 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-------------------------------------------------------------------------

Responder a