• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

bsr

Classes abstratas.

4 mensagens neste tópico

Eu tenho duas classes X e Y, tenho depois uma classe abstrata Z onde estão os metodos das classes X e Y.

A ideia é criar um hashSet ou arrayList (não sei ainda qual vou usar) para guardar vaios objectos do tipo Z.

A duvida é a seguinte, como é que aqui eu digo que ac é "do tipo da classe" X.

/** Metodo que insere nova X */       

    public void insereX(Z ac){

        if((this.existeZ(ac.getNome())) == true) {}  // Se ja existir não faz nada */

            else lista.add(ac);

            }

Nota: lista é um hashSet ou Arraylist de Z

Sei que devo ter cometido algumas calinadas mas sou principiante.

Obrigado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sabes o que se entende por uma classe abstracta, não sabes?

Uma classe abstracta não pode ser istânciada.

Por isso não podes criar objectos do tipo Z.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não percebi o que querias fazer... De qualquer forma, para dizeres que ac é do tipo X, basta fazeres:

X ac1=(X)ac;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não percebi a tua explicação mas creio que compreendi o que queres fazer.

Se estás a usar Java 5 ou 6, basta criares declarares um hashset ou arraylist do tipo que pretendes: ArrayList<Z>

Assim esse arraylist trabalha sobre objectos do tipo Z, e descendentes, sejam eles X ou Y.

Não necessitas de fazer uma classe para inserir os objectos. Se necessitares de maior controlo, podes então criar uma classe que estende de ArrayList<Z> e fazer overwrite aos métodos que necessitas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora