Pelo que me lembre.... Um atributo private n�o pode ser acessado por uma
classe filha. Um protected pode. Essa � a diferen�a entre private e protected.

    Isso n�o � v�lido??

Edson Tirelli wrote:

>     Amigos,
>
>     Este assunto inclusive circulou aqui na lista a um tempo atras. Eh um
> erro comum q eu tambem cometia no inicio, mas eh importante exclarecer: os
> modificadores de acesso limitam o ACESSO EXTERNO aos atributos  da classe,
> mas NAO LIMITAM A HERANCA.
>     Isso quer dizer q se uma classe eh FILHA de outra, ela vai HERDAR TUDO
> da classe MAE, podendo eventualmente sobrescrever algumas coisas (por
> exemplo, o q NAO estiver definido como "final" na classe mae).
>     Assim, no exemplo citado pelo colega:
>
> 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
>     }
> }
>
>      Pra tentar exclarecer o modificador private, observe essa nova
> implementacao abaixo:
>
> 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
>     }
>
>     public void m() {
>         Mae amae = new Mae();
>         amae.x = 30;     // ERRO DE COMPILACAO -> x eh atributo privado de
> Mae
>         amae.y = 20;     // CORRETO -> y eh atributo protegido de Mae
>
>         this.x = 50;     // CORRETO -> atributo x herdado
>         this.y = 60;     // CORRETO -> atributo y herdado
>     }
> }
>
>      Observe q a diferenca entre atributos privados e protegidos eh q os
> atributos protegidos permitem o ACESSO EXTERNO quando o objeto q estiver
> fazendo o acesso for de uma classe FILHA ou DO MESMO PACOTE q a classe q
> contem o atributo.
>
>      Espero ter exclarecido, mais do que complicado... :)
>
>      Abraco,
>          Edson
>
>  ---
>  Edson Tirelli
>  System Analyst
>  Microsoft Certified Professional
>  Sun Certified Programmer for Java 2 Platform
>  try Automatos @ www.automatos.com
>
> -----Mensagem original-----
> De: Alexandre N�brega Duarte [mailto:[EMAIL PROTECTED]]
> Enviada em: quinta-feira, 5 de julho de 2001 08:10
> Para: [EMAIL PROTECTED]
> Assunto: Re: [java-list] Basico de OO em JAVA
>
> Acho que o que voce quer fazer e isso.
>
> public class Mae {
>
>     private int atributo;
>
>     public Mae(){
>
>     }
>
> }
>
> public class Filha extends Mae {
>
>     public Filha() {
>         atributo = 0;
>     }
> }
>
> Se for isso, eh impossivel, mas voce pode contornar este problema fazendo o
> atributo protected ao inves de private. Dessa forma ele continua a ser
> privado para quem esta de fora da classe mas fica publico para as classes
> filhas.
>
> public class Mae {
>
>     protected int atributo;
>
>     public Mae(){
>
>     }
>
> }
>
> Alexandre N�brega Duarte
> P�s-Gradua��o em Inform�tica
> Departamento de Sistemas e Computa��o
> Universidade Federal da Para�ba
> ----- Original Message -----
> From: Fabio Ferreira
> To: [EMAIL PROTECTED]
> Sent: Wednesday, July 04, 2001 5:13 PM
> Subject: [java-list] Basico de OO em JAVA
>
> Como se "seta" um atributo (private) herdado da classe mae no construtor da
> classe filha ?
>
> Fabio Ferreira
>
> ------------------------------ 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]
> -------------------------------------------------------------------------

--
Paulo Rogerio Panhoto

Voice Technology
Tel.: +55-11-5085-2934
Fax: +55-11-5085-2933



------------------------------ 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