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: 4660
Localização: Bahia
Offline

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 25/02 Nivel de Ingles Estudo http://www.camilolopes.com
Colunista Java - UOL Imasters http://www.imasters.com.br
[WWW]
saoj
Forum Spammer
[Avatar]

Membro desde: 09/03/2004 23:34:46
Mensagens: 2292
Localização: Los Angeles, EUA
Offline


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

Participe dos meus novos blogs:
O Poder Primário - Você no controle da sua felicidade
Sedução Tecnológica - Tutoriais, dicas e histórias de um engenheiro

[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: 262
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
[Avatar]

Membro desde: 22/03/2005 20:57:48
Mensagens: 3190
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.

Criando sua própria API de Validação



Blog do MiddleHeaven
[WWW]
LPJava
Forum Spammer
[Avatar]

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

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 25/02 Nivel de Ingles Estudo http://www.camilolopes.com
Colunista Java - UOL Imasters http://www.imasters.com.br
[WWW]
Lintz_net
Debugger

Membro desde: 02/08/2006 15:27:06
Mensagens: 56
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: 1872
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


"Já que o rei não vai virar humilde, eu vou fazer o humilde virar rei."
Emicida.

DuranServiceException
Science: If you ain't pissin' people off, you ain't doin' it right.

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: 1872
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.

"Já que o rei não vai virar humilde, eu vou fazer o humilde virar rei."
Emicida.

DuranServiceException
Science: If you ain't pissin' people off, you ain't doin' it right.

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

Membro desde: 22/03/2005 20:57:48
Mensagens: 3190
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


Criando sua própria API de Validação



Blog do MiddleHeaven
[WWW]
Dieval Guizelini
Virtual Machine Man
[Avatar]

Membro desde: 05/07/2006 14:39:44
Mensagens: 536
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:   
Powered by JForum 2.1.8 © JForum Team