Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Diferença

Qual a diferença de instanciar desse modo:

Conta c1 = new ContaPoupanca();

Para: ContaPoupanca cp = new ContaPoupanca();

O objeto aponta pro mesmo local ?

Obrigado.

3 respostas
solução!

No primeiro caso você está utilizando um polimorfismo. Ou seja, você instanciou uma classe ContaPoupança, mas a variável c1 espera um objeto do tipo Conta.

Isso não gera problemas pois uma ContaPoupança é uma classe filha de Conta.

Importante lembrar que quando utilizamos polimorfismos o objeto só tem acesso as funções declaradas na Classe pai.

No segundo caso você está instanciando um objeto do tipo ContaPoupanca em uma variável do tipo ContaPoupanca.

Ou seja a variável cp tem acesso a todos métodos e propriedades declarados pela classe Conta e ContaPoupanca

Boa Ricardo!!!

Valeu Ricardo, muito bem explicado.

Caso eu tenha uma contaPoupança com novas funções não existentes na classe conta(pai) e eu quisesse usar então não usaria o polimorfismo.

Caso eu tenha funções diferentes em contaPoupança mas por algum motivo eu só quero acessar funções da classe pai, eu utilizaria o polimorfismo.

Abraços