| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/07/2007 13:51:29
|
immortalSoul
JavaGuru
Membro desde: 25/06/2006 13:41:50
Mensagens: 200
Offline
|
como ficaria as regras pra sobrescrever e sobrecarregar metodos synchronized?
exemplo:
na calsse A eu teria :
na classe B herdando de A e sobrescrevendo o metodo "metodoSincronizado()" como ficaria?
é obrigado ser sincronized tmb?
continuando, agora em relaçao a metodos sobrecarregado:
é possivel sobrecarregar o metodo sem usar o sincronized?
desta forma :
agradeço =)
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/07/2007 13:55:23
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
A palavra chave "synchronized", aplicada a métodos, é apenas uma abreviatura para o bloco "synchronized (this)" - se o método não for estático.
equivale a isto:
Portanto essa palavra-chave não toma parte na herança - você não precisa fazer com que um método sobreescrito seja "synchronized" na subclasse se ele for "synchronized" na superclasse.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/07/2007 13:55:50
|
esb
JavaEvangelist
![[Avatar]](/images/avatar/a878dbebc902328b41dbf02aa87abb58.png)
Membro desde: 21/06/2006 14:40:31
Mensagens: 451
Localização: São Paulo
Offline
|
Tudo o que você escreveu é possível. Só corrija a palavra synchronized, que está escrita de forma errada no código.
|
esb |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/07/2007 14:00:38
|
immortalSoul
JavaGuru
Membro desde: 25/06/2006 13:41:50
Mensagens: 200
Offline
|
opa..
valeu pessoal, tava realmente em duvida.
e arrumei o codigo
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/07/2007 14:38:10
|
RafaelVS
JavaEvangelist
![[Avatar]](/images/avatar/50454f95bbf5e6478cc0a55d08338731.jpg)
Membro desde: 13/12/2006 09:50:16
Mensagens: 405
Localização: Recife - PE
Offline
|
e no caso da sobrecarga que vc tb perguntou, não tem nenhuma regra... já que um método sobrecarregado na verdade é um outro método tratado diferentemente (a única coisa que tem em comum com outro método é o nome). Portanto, não tem nenhuma regra e ele funciona como um método qualquer, sem nenhum relacionamento especial.
|
- Mestrando em Engenharia de Software no CIn/UFPE;
- Pós-Graduado em Engenharia de Software na POLI/UPE;
- Bacharel em Ciência da Computação na UNICAP (Universidade Católica de Pernambuco);
- Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0 (score 95%);
- Sun Certified Web Components Developer for J2EE 1.4 Platform (score 89%) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/07/2007 16:20:17
|
sergiotaborda
GUJ Expert
![[Avatar]](/images/avatar/b4a0e0fbaa9f16d8947c49f4e610b549.png)
Membro desde: 22/03/2005 20:57:48
Mensagens: 3433
Offline
|
immortalSoul wrote:como ficaria as regras pra sobrescrever e sobrecarregar metodos synchronized?
O essencial já foi dito, queria apenas acrescentar que um método sincronizado normalmente é também final e como tal não se coloca o problema da herança (sobrescrita).
A razão para ser final é que sincronizar o método é um detalhe de implementação que implica em que a classe está envolvida em logicas multithread e portanto a sua implementação depende das interações das threads (que são externas ao objeto). Desse modo a implementação é protegida com final para que a sub classe não tem acesso a essas logicas e portanto não faria sentido sobrescreve-las.
Se ha intenção de usar herança , o padrão template method pode ser usado.
(ou seja, outros métodos são sobreescritos e não o método sincronizado)
|
Criando sua própria API de Validação
Blog do MiddleHeaven |
|
|
 |
|
|