Problemas com Herança

9 respostas
T

Pessoal, me ajudem!!!

Eu tenho um clase MDI que herda de JInternalFrame, e posui alguns métodos(Incluir, Alterar etc) e no Frame pai eu tenho uma barra de botoes que eu quero que dispare para todos os MDI's que eu vou anexar ao Desktop.

   MDI y = Desktop.getSelectedFrame(); //Nao da certo
   y.Incluir();

Só consegui pensar nisso.
Ja quebrei a kbç e nao sai nada…
Porque a primeira linha nao da certo, se MDI herda de JInternalFram?
E agora?

9 Respostas

sergiolopes

ha um probleminha sutil de heranca aqui!

qdo vc faz “MDI extends JInternalFrame” vc está dizendo que “MDI é um JInternalFrame”. porém, não vale a volta; “JInternalFrame NÃO é um MDI”.

qdo vc faz MDI m = coisaQueDevolveInternalFrame(), isso está incorreto!! a heranca que vc fez acima só garante 2 possibilidades pra vc:

MDI m = metodoQueDevolveMDI()

e

JInternalFrame j1 = metodoQueDevolveMDI()
JInternalFrame j2 = metodoQueDevolveInternalFrame()

danieldestro

E se tentar:

MDI y = (MDI) Desktop.getSelectedFrame();

Dá certo?

sergiolopes

apenas acrescentando à msg anterior:

se vc quer fazer o q vc está fazendo, deve usar um cast para MDI… algo como:

MDI m = (MDI) metodoQueDevolveInternalFrame()

PS. nao sei como funciona esse tipo de coisa no swing (nao sei q objeto exatamente aquele metodo de Desktop devolve), mas teoricamente isso funciona

T

nao…

Mesmo se não tiver nehum objeto do tipo MDI instanciado, ele executra o método Listar()

Porquê?

F.L

danieldestro

Não entendí nada do que vc escreveu.
Pode repetir, pf?

T

Esquece minha última mensage.

Funcionou sim, mas com um probleminha: o override de métodos não funcionou. Alguém sabe porquê

danieldestro

Se você marcou seu método como static, não vai dar certo mesmo.

T

qual? o da Classe MDI ou o da que Herda?

danieldestro

Ambos.

Criado 9 de dezembro de 2004
Ultima resposta 9 de dez. de 2004
Respostas 9
Participantes 3