Chamar Classe Abstrata com uma classe que usa Swing

7 respostas
luis_serra

Galera estou com um problema aqui.
Preciso criar uma classe Abstrata até aí blz.
o problema é na hora de eu chamar ela na outra classe pois a msm já tem extends javax.swing.JFrame
Ex:

public abstract class Colaborador { public abstract void valorBruto(double horasTrabalhadas); }

public class Celetista extends javax.swing.JFrame { //o Resto da classe aqui }

como utilizar a classe abstrata nesse caso?

7 Respostas

fantomas
  1. Não é permitido você aplicar um camando new (“chamar”) em uma classe abstrata (Colaborador); é preciso que crie uma classe concreta (Celetista) que implemente os requisitos da classe abstrata.

  2. É preciso que vc detalhe mais o que quer fazer, a relação entre a parte visual e a estrutura de dados não ficou muito clara.

P.S Faça uma revisão no tema classes abstratas que sera de grande ajuda.

flws

luis_serra

fantomas:
1) Não é permitido você aplicar um camando new (“chamar”) em uma classe abstrata (Colaborador); é preciso que crie uma classe concreta (Celetista) que implemente os requisitos da classe abstrata.

  1. É preciso que vc detalhe mais o que quer fazer, a relação entre a parte visual e a estrutura de dados não ficou muito clara.

P.S Faça uma revisão no tema classes abstratas que sera de grande ajuda.

flws

Obrigado pela ajuda, essa de que não é possível instanciar eu já sabia, vo dar um Ex:
se fosse usar interface ficaria mais facil
seria apenas eu colocar implementes Colaborador na classe Celetista que pronto, já estaria certo.
mais a Abstrata pelo o que eu li vc tem que usar extends mais como farei isso se a minha classe Celetista já tem um extends

A

Luis,

Um primeiro ponto a relembrar é que o Java não permite Herança multipla, por algumas complicações…
Bom, creio que isso já era do seu conhecimento, e sendo assim realmente não é possível extender duas classes.

Algo importante a se considerar é se faz sentido a herança, já que a Orientação a Objetos tem o interesse em aproximar seu código do “mundo real”.
Uma expressão importante e muito útil para se definir quando uma classe deve herdade de outra, é usar a famosa expressão “É um”,
ou seja, (no seu caso) Celetista “É um” Colaborador? se sim, então faz sentido o celentista extends colaborador.
agora, Celetista é um JFrame?? Aparentemente não…

(Lembrando que não é uma boa prática de código extender uma classe apenas para se reaproveitar os métodos. Use sempre o “É um”)

É uma questão de analisar o que se pretende ser feito.
Bom essa é a minha sujestão, e sendo assim a classe JFrame poderia ser colocada em outro lugar e até mesmo ser usada como um atributo de uma classe mais específica.
Mas fica a seu cargo analisar o seu código.

Espero ter ajudado

luis_serra

agradeço muito o que disse, mais esse JFrame é pq eu utilizo Swing, e essa classe é uma Janela que se abre na Tela para digitar as coisas…Nome…CNPJ…Endereço…lebrando que tenho a Classe Pessoa Física que tb deverá usar essa classe Abstrata, eu axei estranho pois está assim no exercício que tenho que fazer. Irei Colocar o código e o Exercício aqui para tentar me ajuda. Chegando em casa a tarde eu posto aqui pra tentarem me ajuda. Preciso desse negócio pra Segunda feira tomara que eu consiga hehhehhe

Ivan_Alves

Se todos que herdam da classe abstrata e também herdam de ‘JFrame’ então você pode colocar o extends ‘JFrame’ na classe abstrata ex.:

public abstract class Colaborador extends javax.swing.JFrame{ ... }

luis_serra

Amigo nem sei como te agradecer, era exatamente isso que eu estava procurando, meu primeiro Semestre com POO, logo pego o jeito, muito obrigado mesmo amigo.
Obrigado tb a todos que tentaram me ajudar!

fantomas

Outra dica é tentar não misturar os temas. Talvez quem sugeriu o exercicio quiz simplificar mas pode ter causado uma certa confusão.

  1. Tente resolver a questão que envolve as classes Colaborador e Celetista, neste momento esqueça a parte visual.

  2. Desenvolva a parte visual, onde irá envolver a classe JFrame.

  3. Desenvolva a iteração entre as classes resultantes do item 1 e 2.

flws

Criado 30 de novembro de 2011
Ultima resposta 1 de dez. de 2011
Respostas 7
Participantes 4