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

Aula 04 - Exercício 2 "Conta c = new ContaCorrente();

Minha dúvida é a seguinte: quando é feito a pergunta "Para que o código do main volte a compilar, troque o new Conta() por new ContaCorrente(). Se não podemos dar new em Conta, qual é a utilidade de ter um método que recebe uma referência a Conta como argumento? Aliás, posso ter isso?"

o que eu entendi é que eu devo trocar o meu código que estava assim:

Conta c = new Conta();

por este:

Conta c = new ContaCorrente();

O código funciona, mas não entendi qual a sua aplicação, qual a vantagem de ter uma conta do que é uma contacorrente mas não tem acesso aos seus comportamentos?

2 respostas
solução!

Olá Armando,

A maior vantagem é a flexibilidade que você terá em seu código.

Imagine um método que, por algum motivo, associará uma conta a um funcionário. Esta conta pode ser ContaCorrente ou ContaPoupanca.

Concorda que você teria que gerar dois métodos (ou "n" de acordo com a quantidade de tipos de conta que você possa ter...) sendo um para cada tipo de conta?

public void associaConta(ContaCorrente c, Funcionario f) {}

public void associaConta(ContaPoupanca c, Funcionario f) {}

public void associaConta(ContaIntegrada c, Funcionario f) {}

Fazendo a geração do seu objeto com a classe Conta, você teria apenas um método "genérico" que faz a associação independente do tipo da conta.

public void associaConta(Conta c, Funcionario f) {}

Se tiver alguma dúvida, informa que tento esclarecer melhor.

Abraço.

oi Harley, acho que eu entendi.... obrigado!