Propriedade privada, herda ou não herda?  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
pardal_nb
Virtual Machine Man

Membro desde: 12/09/2006 08:26:06
Mensagens: 672
Offline

Opa,

pessoal, membros (atributos e metodos) privados sao herdados ou não? Pode parecer besta essa pergunta, mas olhando o livro da Kath vi q ela fala q nao eh herdado...e ao meu ver, herdar eh uma coisa, ter acesso é outra...

flw
fec
JavaChild
[Avatar]

Membro desde: 04/04/2007 14:34:25
Mensagens: 100
Offline

Never!!!

"Qualquer coisa é a mesma coisa"
LPJava
Forum Spammer
[Avatar]

Membro desde: 18/04/2006 12:50:23
Mensagens: 3758
Localização: Bahia
Online

pardal to discutindo isso contigo desde de manha e tu sabe o q acho uhauhaua entao nao herda... um exemplo classico.

"seu pai tem uma cueca que é private, algo pessoal dele, vc nao vai querer herdar uma cueca dele ne? pq é algo pessoal e foi declardo como private." Agora tu vai querer herdar a casa, o carro etc..
entao aquilo que é pessoal tu declara como private..

flw"

Sun Certified Java Programmer 5.0
Blog! Atualizado 14/11 CVS ee sua importancia http://camilolopes.wordpress.com
Colunista Java - Imasters http://www.imasters.com.br
[WWW]
saoj
Forum Spammer
[Avatar]

Membro desde: 09/03/2004 23:34:46
Mensagens: 2103
Localização: RJ, BRA
Offline


Never, mas com umas sacanagens de reflection eu vejo ela...

- "Prefiro proclamar abertamente aos homens, baseando-me no meu conhecimento da realidade, aquilo que lhes seja útil, ainda que ninguém o compreenda, a dar, sob o caloroso aplauso da multidão, o meu acordo em tolices." (Epicuro)
[Email] [WWW]
acopiara
JavaChild
[Avatar]

Membro desde: 14/11/2006 17:15:33
Mensagens: 149
Offline

Como saoj disse, via reflection dar para ler os atributos privados.

Dessa forma:




[]'s

--
Alysson Bandeira
crpablo
JavaGuru
[Avatar]

Membro desde: 09/11/2007 14:48:58
Mensagens: 226
Localização: Floripa/Brazil
Offline

"Membros marcados como privados não podem ser acessados por código em nenhuma outra classe que não aquela na qual o membro privado foi declarado."

"Quando um membro é declarado como privado uma subclasse não pode herdar dele."

Fonte: Certificação Sun para Programador Java? 5.

SCJP Exame 310-055



Pablo

[Email] [WWW] [Yahoo!] aim icon [MSN] [ICQ]
sergiotaborda
Forum Spammer

Membro desde: 22/03/2005 20:57:48
Mensagens: 1897
Offline

pardal_nb wrote:Opa,

pessoal, membros (atributos e metodos) privados sao herdados ou não? Pode parecer besta essa pergunta, mas olhando o livro da Kath vi q ela fala q nao eh herdado...e ao meu ver, herdar eh uma coisa, ter acesso é outra...



Não. São a mesma coisa.
Se algo não é herdado isso significa que não pertence ao escopo do objeto filho. Se não pertence ao escopo não ha como ter acesso. Se ele é private ele não pertence ao escopo do objeto filho, logo não tem acesso.

Reflection não vem ao caso porque o livro da Kathy não se mete por ai.

Sérgio Taborda's Weblog
http://sergiotaborda.wordpress.com

Dados X Domínio : A Batalha
[WWW]
LPJava
Forum Spammer
[Avatar]

Membro desde: 18/04/2006 12:50:23
Mensagens: 3758
Localização: Bahia
Online

crpablo wrote:"Membros marcados como privados não podem ser acessados por código em nenhuma outra classe que não aquela na qual o membro privado foi declarado."

"Quando um membro é declarado como privado uma subclasse não pode herdar dele."

Fonte: Certificação Sun para Programador Java? 5.

SCJP Exame 310-055


eu ja falei isso para ele, scanei a pag e envei mais ele nao acredita... ohh my god!

Sun Certified Java Programmer 5.0
Blog! Atualizado 14/11 CVS ee sua importancia http://camilolopes.wordpress.com
Colunista Java - Imasters http://www.imasters.com.br
[WWW]
Lintz_net
Thread.start()

Membro desde: 02/08/2006 15:27:06
Mensagens: 25
Offline

Cara, eu não me lembro onde, mas eu já li que os membros private são herdados, porém, não são acessados... só não lembro onde foi que eu li.
[Email]
Andre Brito
Forum Spammer
[Avatar]

Membro desde: 21/07/2007 17:44:31
Mensagens: 1088
Localização: Paraná
Offline

Foi mal chegar assim, mas se eu precisasse de um atributo que só as subclasses pudessem acessar, quem eu usaria? Protected ou public? Se eu usar publc ficaria uma variável global :S

This message was edited 1 time. Last update was at 21/12/2007 21:49:46


balboa is jamming.
"We couldn't find a good UML tool for our community. So our community built one. You guys are awesome."
TopCoder
pardal_nb
Virtual Machine Man

Membro desde: 12/09/2006 08:26:06
Mensagens: 672
Offline

Lintz_net wrote:Cara, eu não me lembro onde, mas eu já li que os membros private são herdados, porém, não são acessados... só não lembro onde foi que eu li.


foi aki:
http://ctp.di.fct.unl.pt/lei/lp1/teoricas/28.html

???
Andre Brito
Forum Spammer
[Avatar]

Membro desde: 21/07/2007 17:44:31
Mensagens: 1088
Localização: Paraná
Offline

Mas e qual seria a vantagem de herdar e não acessar?

Continuo com a pergunta feita pela minha pessoa acima.

balboa is jamming.
"We couldn't find a good UML tool for our community. So our community built one. You guys are awesome."
TopCoder
pardal_nb
Virtual Machine Man

Membro desde: 12/09/2006 08:26:06
Mensagens: 672
Offline

sabe o q eh HERANÇA ??

me fala o q é ?!
sergiotaborda
Forum Spammer

Membro desde: 22/03/2005 20:57:48
Mensagens: 1897
Offline

pardal_nb wrote:
Lintz_net wrote:Cara, eu não me lembro onde, mas eu já li que os membros private são herdados, porém, não são acessados... só não lembro onde foi que eu li.


foi aki:
http://ctp.di.fct.unl.pt/lei/lp1/teoricas/28.html



Ai diz o seguinte :


A generalidade dos métodos de instância das superclasses são herdados pelas subclasses, ficando a fazer parte destas. Exceptuam-se:

* os métodos privados
* os métodos não-privados que são redefinidos

Um subclasse não tem qualquer forma de acesso aos métodos não-herdados privados (pois claro, eles são privados!). Também não consegue aceder directamente aos métodos não-herdados redefinidos.



É bem claro.




(...)

Todas as variáveis de instância das superclasses (mesmo as variáveis private) são herdadas pelas subclasses, ficando a fazer parte dos seus objectos. No entanto a subclasse fica sem acesso

* às variáveis herdadas privadas




Essa é engraçada... herda mas não tem acesso...
a explicação é esta



Precaução 1
Nem todos os livros se entendem relativamente à definição do termo herança.

Nós adoptamos a visão de que se consideram herdadas todas as componentes da superclasse que são reutilizadas na implementação dos objectos da subclasse. Esta visão permite discutir a implementação dos objectos com maior clareza.

A outra visão considera que só são herdadas as componentes que ficam directamente visíveis na subclasse. Esta visão é confusa pois obriga a esclarecer que, certas componentes da superclasse, apesar de se dizerem não-herdadas, são reutilizadas na implementação dos objectos das subclasses, estando disponíveis para acesso indirecto dentro da subclasse.


Eles não seguem a mesma "visão" que as pessoas normais.

This message was edited 3 times. Last update was at 21/12/2007 22:34:48


Sérgio Taborda's Weblog
http://sergiotaborda.wordpress.com

Dados X Domínio : A Batalha
[WWW]
Dieval Guizelini
JavaEvangelist
[Avatar]

Membro desde: 05/07/2006 14:39:44
Mensagens: 464
Localização: Curitiba - PR
Offline

Senhores,

1. herança sempre herda tudo (absolutamente tudo) da classe pai.
2. herança deve ser usado para "especializar" uma classe, ou seja, ampliar o escopo ou fazer algo para situações particulares.
Exemplo classico:



observe que se o objetos da classe Quadrado não tivesse herdado os atributos e métodos, o seu funcionamento não seria o mesmo.

fw

This message was edited 2 times. Last update was at 21/12/2007 23:19:56


Sun Certified Java Programmer 5.0
[WWW]
 
Índice dos Fóruns » Java Básico
Ir para:   
Apoiado e desenvolvido por Caelum Cursos Java - Powered by JForum 2.1.8 © JForum Team