Qual a diferença de instanciar desse modo:
Conta c1 = new ContaPoupanca();
Para: ContaPoupanca cp = new ContaPoupanca();
O objeto aponta pro mesmo local ?
Obrigado.
Qual a diferença de instanciar desse modo:
Conta c1 = new ContaPoupanca();
Para: ContaPoupanca cp = new ContaPoupanca();
O objeto aponta pro mesmo local ?
Obrigado.
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