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?