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?
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
alexandrenogueira
Roger,
neste seu caso eu poderia fazer?
ContaCorrenteEspecial cc;
cc = new ContaCorrente(“1101010”);