Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

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.