| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/01/2007 13:11:20
|
du123
JavaChild
Membro desde: 27/11/2006 11:19:22
Mensagens: 127
Offline
|
Bom dia!
Estou com duas classes aqui... funcionário e gerente... gerente é subclasse de funcionário... seguindo o conceito de que gerente é um funcionario...
como não quero que sejam instanciados funcionários, coloquei-a como classe abstrata... e tenho um método abstrado nesse classe funcionario, chamado "promove()" ... ele altera o nivel do gerente ( de B para A, por exemplo ... )
Acontece que agora gostaria de criar uma classe diretor, que extenda de funcionario, mas nao gostaria que ela tivesse o método promove... e sou obrigado a colocar, caso contrario nao compila...
Qual seria a forma mais correta de agir, neste caso?
Obrigado =)
|
Keep studying, little grasshopper... =) |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/01/2007 13:21:08
|
Deh
JavaGuru
![[Avatar]](/images/avatar/bac4cbb6173335e862a1b3df635ee3ba.jpg)
Membro desde: 18/04/2006 23:02:24
Mensagens: 244
Localização: Florianópolis - SC
Offline
|
você poderia criar uma interface, que tenha o método "promover()", e implementar somente nas classes que acha necessário!
http://www.guj.com.br/posts/list/49267.java
nesse tópico aqui tem uma mega-aula do nosso colega mantu =]
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/01/2007 13:22:53
|
cassio
GUJ Master
![[Avatar]](/images/avatar/8ae7398026ed8f2172aefd6cbc856bc8.jpg)
Membro desde: 19/06/2006 08:25:28
Mensagens: 1336
Localização: Caieiras-SP
Offline
|
Eu penso da seguinte maneira:
1) Não implementa o método promove(). Se ele retornar void, simples. fica um método inútil que não faz nada e não oferece perigo. Se retornar boolean põe ele pra retornar sempre false, quer dizer, seu diretor nunca será promovido.
2) Cria duas interfaces para funcionários: FuncionarioPromovivel e FuncionarioNaoPromovivel. O segundo tipo não possui o método promove();
3) Idéia semelhante a do item 2, porém com método abstrato.
A melhor solução depende da sua aplicação mesmo...
|
Cássio Marques
Blog
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/01/2007 13:23:03
|
du123
JavaChild
Membro desde: 27/11/2006 11:19:22
Mensagens: 127
Offline
|
Vou dar uma olhada!
Obrigado!
|
Keep studying, little grasshopper... =) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/01/2007 13:30:40
|
du123
JavaChild
Membro desde: 27/11/2006 11:19:22
Mensagens: 127
Offline
|
Preferi criar a interface Promovivel... funcionou legal =)
Outra duvida... se eu quiser utilizar o polimorfismo, junto com isso... e fazer algo parecido com isso:
Funcionario g1;
g1 = new Gerente("Eduardo Amuri","442243133",1000);
g1.promove();
Porque ele não deixa, sendo que g1 é um gerente? ( lembrando que Funcionario é abstrato.
tks!
|
Keep studying, little grasshopper... =) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/01/2007 13:37:59
|
cassio
GUJ Master
![[Avatar]](/images/avatar/8ae7398026ed8f2172aefd6cbc856bc8.jpg)
Membro desde: 19/06/2006 08:25:28
Mensagens: 1336
Localização: Caieiras-SP
Offline
|
posta o código da interface e da(s) classe(s) ai!
|
Cássio Marques
Blog
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/01/2007 13:41:36
|
du123
JavaChild
Membro desde: 27/11/2006 11:19:22
Mensagens: 127
Offline
|
A classe abstrata Funcionario...
e a interface...
Muito obrigado =)
|
Keep studying, little grasshopper... =) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/01/2007 14:29:29
|
cassio
GUJ Master
![[Avatar]](/images/avatar/8ae7398026ed8f2172aefd6cbc856bc8.jpg)
Membro desde: 19/06/2006 08:25:28
Mensagens: 1336
Localização: Caieiras-SP
Offline
|
Apesar da sua classe Gerente implementar a interface Promovivel, como ela estende Funcionario, o extends acaba "prevalecendo" sobre o implements. Logo, para que vc pudesse utilizar o método promove() com essa estrutura de classes que você criou, seria necessário que a classe abstrata Funcionario tivesse o método promove(), o que não acontece...
|
Cássio Marques
Blog
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/01/2007 14:49:44
|
peczenyj
Moderador
![[Avatar]](/images/avatar/299dc35e747eb77177d9cea10a802da2.jpg)
Membro desde: 26/03/2006 23:25:37
Mensagens: 3191
Localização: Rio de Janeiro
Offline
|
Aviso:
== testa se as referencias,
equals testa a igualdade de valores, nesse caso sobrecarregado para a classe String com este objetivo.
|
http://pacman.blog.br
'Não importa quanto alguém se dedique à tarefa. Ninguém consegue fazer a água da cascata cair para cima.' |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/01/2007 15:26:41
|
du123
JavaChild
Membro desde: 27/11/2006 11:19:22
Mensagens: 127
Offline
|
Existe alguma lógica que eu possa usar, que faça mais sentido?
Não contava com essa "prioridade" ... hehehe
|
Keep studying, little grasshopper... =) |
|
|
 |
|
|