metodo sincronizado sobrecarregado e sobrescrito  XML
Índice dos Fóruns » Certificação Java
Autor Mensagem
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 =)
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.
[WWW]
esb
JavaEvangelist
[Avatar]

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

Membro desde: 25/06/2006 13:41:50
Mensagens: 200
Offline

opa..
valeu pessoal, tava realmente em duvida.
e arrumei o codigo

RafaelVS
JavaEvangelist
[Avatar]

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%)
sergiotaborda
GUJ Expert
[Avatar]

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
[WWW]
 
Índice dos Fóruns » Certificação Java
Ir para:   
Powered by JForum 2.1.8 © JForum Team