Bom dia a todos.
Desculpe se não fui claro no tópico, mas tentarei ser o mais claro e objetivo na minha dúvida.
Eu tenho por costume, ao utilizar determinadas classes, de usar a interface e instanciar uma determinada classe que a implemente.
Exemplos:
List<String> stringList = new ArrayList<String>();
Map<Integer, String> mapList = new HashMap<Integer, String>();
Bom, foram apenas dois exemplos. Para os mesmos, gostaria de saber se existe diferença técnica, de desempenho, qualidade de código, enfim, para o código abaixo:
ArrayList<String> stringList = new ArrayList<String>();
HashMap<Integer, String> mapList = new HashMap<Integer, String>();
Veja, aqui declaro a própria classe e não sua respectiva interface.
É isso, espero ter sido claro.
Edit: eu sei que você pode implementar uma interface e adicionar mais métodos a classe que implementa a interface, por exemplo. Sobre isso estou bem esclarecido.
Grato a todos.
Abraços.