Polimorfismo - dúvida de iniciante

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.

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

Assim não pode?

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

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.

Roger,

neste seu caso eu poderia fazer?

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

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

Isto pode ajudar.

Cara faz isso que da certo…

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