Polimorfismo

5 respostas
N

Pessoal é o seguinte:

Criei uma classe abstrata chamada PlanoAssinatura e outras subclasses estendendo PlanoAssinatura, com os nomes dos planos e declaração dos métodos.

No momento em que solicito o cadastro do cliente, deverá informar o plano do cliente(1-PlanoA 2-PlanoB 3-PlanoC).

entraPlanoassinatura = JOptionPane.showInputDialog(“Digite uma opção:\n” + 1 - PLANOA +
"2 - PLANOB +
“3 - PLANOC”)
;

cliente.setPlanoAssinatura(entraPlanoassinatura);

Quando for informado 1- deverá chamar a classe correspondente ao PlanoA.

Como chamar a classe referente ao plano informado?
Sendo que todas as classes com os planos A, B, C tem os mesmo métodos, com a mesma quantidade de atributos, porém com cálculos diferentes?

Abração.

5 Respostas

Dieval_Guizelini

Nanda,

você irá instanciar o objeto no método:
cliente.setPlanoAssinatura(entraPlanoassinatura);

então faça assim:

switch( entraPlanoassinatura) { case 1: this.plano = new PlanoA(); break; case 2: this.plano = new PlanoB(); break; case 3: this.plano = new PlanoC(); break; }

Agora se você quer aprimorar mesmo o seu código então faça uso do pattern Factory e use o switch acima na classe Factory.

até mais.

N

Dieval,

Valeu!!! Deu certinho aqui.

Obrigada! Abração.

LPJava

NandaComp:
Pessoal é o seguinte:

Criei uma classe abstrata chamada PlanoAssinatura e outras subclasses estendendo PlanoAssinatura, com os nomes dos planos e declaração dos métodos.

No momento em que solicito o cadastro do cliente, deverá informar o plano do cliente(1-PlanoA 2-PlanoB 3-PlanoC).

entraPlanoassinatura = JOptionPane.showInputDialog(“Digite uma opção:\n” + 1 - PLANOA +
"2 - PLANOB +
“3 - PLANOC”)
;

cliente.setPlanoAssinatura(entraPlanoassinatura);

Quando for informado 1- deverá chamar a classe correspondente ao PlanoA.

Como chamar a classe referente ao plano informado?
Sendo que todas as classes com os planos A, B, C tem os mesmo métodos, com a mesma quantidade de atributos, porém com cálculos diferentes?

Abração.


nesse caso no seria melhor vc usar interface… com os metodos ao inves de herança?

Luiz_Aguiar

Use uma interface ao invés da classe abstrata, ai toda as classes que implementarem essa interface, terão seus métodos de calculo destintos, e os outros métodos tbm.

Qualquer dúvida só falar.

marcus.xavier06

Como nosso Amigo em cima flw vc tbm pode usar o If
exemplo:

[code]
if (plano==1) {
condicao
}
else if (plano ==2) {
condicao
}
else {
condicao
}

espero ter ajudado

Criado 15 de novembro de 2006
Ultima resposta 22 de nov. de 2006
Respostas 5
Participantes 5