Um metodo q possa receber tanto um objeto como outro

2 respostas
oitathi
Gente é o seguinte, eu tenho um metodo chamado DrawElements que não retorna nada. Porém, eu quero q ele receba como parametro ou um objeto do tipo Achou, ou um objeto do tipo Procurado. Porque, quando ele receber qq um desses objetos, ele vai ter q se comportar da mesma forma. Mas como eu faço isso? Tentei usar Object como paramentro e não funcionou... vou passar o código q eu fiz com ele recebendo objeto achou:
public void drawElements(Achou achou) {
        JLabel target = new JLabel();
        metodos.drawTarget(colorTarget);
        target = metodos.getTarget();
        target.setLocation(achou.getPosTargetX() + metodos.getMargem(), achou.getPosTargetY() + metodos.getMargem());
        JLabel label = new JLabel(achou.getInformation());
        label.setBackground(colorTarget);
        label.setForeground(colorFont);
        label.setSize(80, 20);
        label.setOpaque(true);
        label.setVisible(true);
        label.setLocation(achou.getPosMessageLabelX() + metodos.getMargem(), achou.getPosMessageLabelY() + metodos.getMargem());
        Target target1 = new Target(achou.getInformation(), achou.getPosMessageLabelX(), achou.getPosMessageLabelY(), achou.getPosTargetX(), achou.getPosTargetY());
        listTarget.add(target1);
        layeredPane.add(label, new Integer(atualizaContLabels()));
        layeredPane.add(target, new Integer(atualizaContLabels()));
        layeredPane.validate();
        //Zerando a posicao do scroll
        scrollImage.getHorizontalScrollBar().setValue(0);
        scrollImage.getVerticalScrollBar().setValue(0);
        //Revalidando o scrollImage
        scrollImage.validate();
        centralizar(achou.getPosTargetX() + metodos.getMargem(), achou.getPosTargetY() + metodos.getMargem());
    }

Agora eu preciso q este metodo tb faça as mesmas coisas com o objeto do tipo procurado. O objeto procurado tb contem os mesmos getters do achou...

2 Respostas

S

Na classe Procurado,Achou tu implementa uma interface que tu vai criar(Ex.: Drawlizable)
ai tu faz isto

public void drawElements(Drawlizable draw) {

eu acho q é assim

M

Huahaha, curti a palavra Drawlizable, rs…

Mas é isso aí, oitathi, Se os dois podem se comportar da mesma forma, é só vc criar uma interface comum aos dois e fazer com que drawElements receba qualquer objeto que implemente essa interface.

Polimorfismo, yeah o/

Criado 8 de dezembro de 2010
Ultima resposta 8 de dez. de 2010
Respostas 2
Participantes 3