Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

O 'new' não manda nada...

Quer dizer então que quem manda mesmo é o tipo definido antes do nome da variável. Se eu inserir um método abc na classe ContaCorrente, mas fizer Conta c = new ContaCorrente(); , este método não estará visível. Mas se eu fizer ContaCorrente c = new ContaCorrente() (ou se colocar o método na classe Conta) aí ele aparece. É isso? O new não deveria atribuir os métodos da classe à variável?

1 resposta
solução!

Boa tarde Marcelo. Isso mesmo, porque assim, "c" é do tipo Conta então pode receber uma Conta, uma Conta Corrente, Poupanca e futuramente outras contas... e como o método é invocado em tempo de execução pela jvm, correria o risco de chamar c.abc() em algum objeto que não seria a Conta Corrente. Para evitar isso, o tipo de variável que limita os métodos chamados.