Polimorfismo - dúvida de iniciante

6 respostas
A

Bom dia,

Tenho duas classes, ContaCorrente e
ContaCorrenteEspecial extends ContaCorrente.

tenho um método que só existe na classe filha ContaCorrenteEspecial.
getLimite().

Tenho o seguinte:

ContaCorrente cc;

cc = new ContaCorrenteEspesial(1101010);

cc.getLimite();

Isso dá pau, pq a referencia do objeto é a para a classe pai, e o metodo que estou chamando está somente na classe filha.
Como deve ser feito neste caso?

Obrigado.
Alexandre Nogueira.

6 Respostas

Foxlol

Isso não é Polimorfismo.

Seria se vc tivesse uma Interface ContaCorrente e as classes ContaCorrente e ContaCorrenteEspecial implementassem o método getLimite (cada uma a seu jeito).

Nesse caso vc tah querendo fazer um Downcasting (uma classe generalizada para uma especializada).

Vc pode criar um método abstrato. Tornando a classe ContaCorrente abstrata.

Meu conhecimento é limitado, mas se eu falei besteira por favor me corrijam :?

Espero ter ajudado

Roger75

Assim não pode?

ContaCorrenteEspecial cc; cc = new ContaCorrenteEspecial("1101010"); cc.getLimite();

renandemelo

Seguinte…

No seu caso ele dá erro porque a variável cc é da classe ContaCorrente e só vai funcionar chamar métodos desta classe, a vantagem do polimorfismo com relação a métodos é na subscrição deles, digamos que a classe ContaCorrenteEspecial realizasse a tarefa getLimite() de uma maneira específica desta classe, quando você chamar o método getLimite() deste objeto cc ele realizaria o método da ContaCorrenteEspecial. Esse tipo de coisa tem lógica no fundo, é só você pensar… (pq eu não sei explicar direito)

Espero ter mais ajudado do que confundido.
Flw,
Renan.

A

Roger,

neste seu caso eu poderia fazer?

ContaCorrenteEspecial cc;
cc = new ContaCorrente(“1101010”);

Foxlol

http://www.dca.fee.unicamp.br/cursos/PooJava/polimorf/index.html

Isto pode ajudar.

S

Cara faz isso que da certo…

ContaCorrente cc = new ContaCorrenteEspecial();
((ContaCorrenteEspecial)cc).getlimite();

Criado 26 de julho de 2006
Ultima resposta 26 de jul. de 2006
Respostas 6
Participantes 5