Boa tarde pessoal,
estou com um probleminha que não achei solução e gostaria que se alguém souber resolver me ajude por favor…
é o seguinte, tenho uma classe Administrador que herda de Empregado que por sua vez herda de Pessoa, então
criei um array do tipo Pessoa que a cada posição recebe uma instância de classe filha por exemplo
Até aí funciona perfeitamente…o problema é a hora de mostrar os resultados…por exemplo, quero escrever somente
os dados de Administrador, então faço o seguinte:
Mas quando faço isso, se caso pessoa[0] for uma instancia de Empregado e pessoa[1] for instancia de Administrador o sistema escreve duas vezes os dados, sendo que logicamente se pessoa é instância de Administrador que herda de Empregado, logo pessoa é uma instância de Empregado também, estou certo?
Se estou certo então como faço pra poder escrever somente os dados do Administrador?
Existe solução?
Obrigado, mas não era bem isso…o meu objeto é do tipo Pessoa, eu escrevo ele da seguinte forma
e estou fazendo tipo um cast para escrever os dados de Pessoa > Empregado > Administrador, nessa
sequencia de herança…assim:
entendeu? O problema e que se você dizer que pessoa é instância de Administrador ele vai escrever obrigatoriamente a
instância de Empregado, e não era isso que eu queria.
W
Wagner_Junio
otaviojava:
Pessoa é uma instância de administrador já que ele é uma subclasse.
O que você pode fazer é ao ele passar verificar quem é o pai.
E como faço isso???
otaviojava
object.getClass().getSuperclass();
W
Wagner_Junio
Bom galera, valeu a ajuda, mas consegui resolver de outra forma…
ficou um pouco estranho mas funcionou do jeito que eu queria…
for(inti=0;i<pessoa.length;i++)if(pessoa[i]instanceofEmpregado&&pessoa[i]instanceofAdministrador==false&&pessoa[i]instanceofOperario==false)System.out.print("\n\n\nDados do Empregado: \n\n"+((Empregado)pessoa[i])+"\n-------------------------------");