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