Polimorfismo

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.

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.

Dieval,

Valeu!!! Deu certinho aqui.

Obrigada! Abração.

[quote=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.[/quote]
nesse caso no seria melhor vc usar interface… com os metodos ao inves de herança?

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.

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