Pense que assim como no exemplo você tem um banco com diversos tipos de Conta. ContaEspecial, ContaCorrente, ContaPoupanca.
Conta no caso é uma classe abstrata, e as outras três estendem de Conta. Pense agora que eu tenho uma classe TestaContas, ela terá um método qualquer que para executar precisa de um objeto do tipo Conta como parâmetro.
public void metodoQualquer(Conta c){
//Execução de algo
}
Como ContaCorrente, ContaPoupanca e ContaEspecial são classes que estendem de Conta, elas podem passadas como parâmetro para um método que precisa de um objeto conta. No caso não se torna necessário um objeto especifico do tipo ContaCorrente.
É importante lembrar que há casos em que não se recomenda usar isso, pois passando o parâmetro "Conta c", só poderão ser usados atributos e métodos que existem dentro da classe Conta.
Espero ter sido claro.