Bom dia,
Estou procurando na net e não achei nada que fale sobre o desempenho da aplicação quando se usa Interfaces ou Classes Abstratas ao inves da Classe Concreta para referenciar objetos.
Um exemplo seria a utilização da Interface List ao inves da classe ArrayList, assim:
List<Pessoa> lista = new ArrayList<Pessoa>();
ao inves de
ArrayList<Pessoa> lista = new ArrayList<Pessoa>();
E também nos parametros dos métodos:
public void umMetodo(List param){}
Pra sermos mais diretos, vamos deixar a questãos de reuso, projeto, modelagem, etc e vamos focar em duas coisas: uso de memória e velocidade de execução. 
Existem alguma vantagem do uso de um ou de outro? Ou dá na mesma?
Abraços