| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/06/2010 11:10:30
|
manolo
JavaChild
![[Avatar]](/images/avatar/459a7729a31e972dddb6de614c0f004c.jpg)
Membro desde: 10/09/2009 12:37:23
Mensagens: 137
Localização: Londrina, PR
Offline
|
Bom dia pessoal.
A minha dúvida está decorrendo do tema em OOP chamado herança e polimorfismo.
O problema e que tenho uma super-classe chamada "Empregado", e uma sub-classe chamada "Gerente".
Dentro da classe "Gerente " tenho um método chamado " getSalarioTotal()", que me retorna o salario (que declarei como uma constante), mais a comissao!
Como posso invocar esse método da sub-classe, sendo que o objeto "empregados[i]" é da super-classe "Empregado", e ele nao acha os métodos da "sub".
Não sei se fui muito claro.
estou a diposição para esclarecimentos
Obrigado.
This message was edited 1 time. Last update was at 18/06/2010 16:25:20
|
João Manolo. |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/06/2010 11:27:10
|
blackfalcon
JavaEvangelist
![[Avatar]](/images/avatar/67cba9ae9e4555079d1751ea3d187147.jpg)
Membro desde: 01/04/2008 21:08:28
Mensagens: 347
Offline
|
Ao inves de criar um objeto empregado, crie um objeto gerente.
E tambem, esse metodo getSalario nao deveria estar na classe Empregados? Visto que todos empregados tem salario...
Abraços
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/06/2010 14:42:31
|
manolo
JavaChild
![[Avatar]](/images/avatar/459a7729a31e972dddb6de614c0f004c.jpg)
Membro desde: 10/09/2009 12:37:23
Mensagens: 137
Localização: Londrina, PR
Offline
|
Olá, Blackfalcon!
Então, eu criei um objeto gerente! alias eu tenho três tipos de empregados!
-gerente
-secretaria
-programador
Estou armazenando o objeto dentro do array" empregados", mas minha duvida e de como posso listar no final do programa todos os empregados!
E como eu posso chamar os metodos da sub-classe.
Para facilitar o entendimento vou postar o parte do codigo:
Não sei se fui muito objetivo, peço desculpas.
E agradeço a ajuda!
Abraçoss.
|
João Manolo. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/06/2010 15:57:41
|
manolo
JavaChild
![[Avatar]](/images/avatar/459a7729a31e972dddb6de614c0f004c.jpg)
Membro desde: 10/09/2009 12:37:23
Mensagens: 137
Localização: Londrina, PR
Offline
|
Dei uma pesquisada!
Uma solução seria fazer isto:
seria uma solução?
Obrigado.
This message was edited 1 time. Last update was at 14/06/2010 15:58:52
|
João Manolo. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/06/2010 16:04:03
|
Tiago Farias
JavaChild
![[Avatar]](/images/avatar/295f404072232ad70d1f4893912d68a3.jpg)
Membro desde: 24/02/2008 16:18:39
Mensagens: 109
Localização: Recife-PE
Offline
|
Então manolo, no caso, pra vc poder chamar um método da sub-classe dessa forma ele deve existir tb na superclasse. Tipo:
Empregado é a superclasse e deve possuir um método getSalario();
Todas as subclasses de Empregado devem possuir esse método tb.
Daí, vc faria um loop for como vc fez, mas só que listando todos os Empregados (ao invés de apenas gerentes).
for(Empregado empregado : empregados) {
double salario = empregado.getSalario();
}
Apesar da classe q chama o método ser do tipo Empregado, o método q eh realmente chamado é o da subclasse q sobrescreveu o método da superclasse.
|
SCJP 6
SCWCD 5
Bacharel em Ciência da Computação - UFPE
http://tiagodev.wordpress.com
- What does a insomniac, agnostic and dislexic man do at night?
- He contemplates about the existence of an All-Mighty Dog. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/06/2010 16:58:18
|
manolo
JavaChild
![[Avatar]](/images/avatar/459a7729a31e972dddb6de614c0f004c.jpg)
Membro desde: 10/09/2009 12:37:23
Mensagens: 137
Localização: Londrina, PR
Offline
|
Vou tentar Tiago, obrigado.
Qual a função de " : " dentro do laço for?
Abraço.
|
João Manolo. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/06/2010 17:05:40
|
Tiago Farias
JavaChild
![[Avatar]](/images/avatar/295f404072232ad70d1f4893912d68a3.jpg)
Membro desde: 24/02/2008 16:18:39
Mensagens: 109
Localização: Recife-PE
Offline
|
Ah! Então, esse tipo de loop for eh chamado de "for iterado". A sintaxe
poderia ser lida como: "Para cada elemento 'e' dentro da lista 'listaElementos' ". O ':' apenas faz parte da construção. =]
|
SCJP 6
SCWCD 5
Bacharel em Ciência da Computação - UFPE
http://tiagodev.wordpress.com
- What does a insomniac, agnostic and dislexic man do at night?
- He contemplates about the existence of an All-Mighty Dog. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/06/2010 22:24:33
|
manolo
JavaChild
![[Avatar]](/images/avatar/459a7729a31e972dddb6de614c0f004c.jpg)
Membro desde: 10/09/2009 12:37:23
Mensagens: 137
Localização: Londrina, PR
Offline
|
Olha, que joia cara! Bem mais fácil. Obrigado Tiago.
Então, deu tudo certo no código, mas sera que seria possível eu mostrar a saida em uma tela?
Não aprendi como se faz tal façanha. hauahuahuahuaua
Parece que é realizado com o JFrame, sera que alguém pode me da um help para mostrar a saida em uma janela!
Vou modificar os métodos, e apenas um exemplo!
Obrigado.
|
João Manolo. |
|
|
 |
|
|