Oi Bruno, tudo bom?
Não encontrei o método public void metodoDeConta(Conta c) { }
no exercicio. Você poderia me mostrar onde ele está?
Quanto ao exercicio, a ideia é que a partir de agora nossa Conta
é uma classe abstrata. Ou seja, não podemos instanciar alguém do tipo Conta
somente classes filhas. Por isso precisamos trocar para new Conta Corrente()
. A partir disso o exercicio pergunta qual a vantagem de termos a classe Conta
no nosso projeto se não vamos criar ninguém do tipo Conta
e sim ContaCorrente
ou ContaPoupanca
.
E a vantagem é justamente o polimorfismo. Com a classe conta conseguimos definir o que é uma conta para o Java e a partir disso podemos nos referenciar a todos que são contas (ou seja, conta e suas filhas) da mesma forma!
Usando seu método como exemplo:
public void metodoDeConta(Conta c)
Aqui, podemos passar tanto uma referencia a uma ContaCorrente
quanto uma referencia a ContaPoupanca
. E mais, se um dia nosso sistema crescer e precisarmos criar uma ContaSalario
e herdamos de Conta
, ela também passará no método =)
Essa é uma das vantagens do polimorfismo! Temos um código muito mais flexivel!
Espero ter ajudado. Qualquer dificuldade, compartilhe com a gente!