List lista = new ArrayList();
nesta linha de codigo pq declaro com List e estancia como ArrayList???
List lista = new ArrayList();
nesta linha de codigo pq declaro com List e estancia como ArrayList???
List é uma interface e ArrayList é uma implementação de List.
Não da para instanciar uma interface.
List é uma interface implementada por várias classes, tais como ArrayList , LinkedList e Vector.
Daí você poder instanciar um arraylist usando List.
Isso torna o código mais flexível e fácil de alterar no caso de futuramente querermos trabalhar com outra estrutura que não seja um ArrayList.
Mas você também poderia usar o ArrayList ao invés de List.
ArrayList lista = new ArrayList();
Para saber se tem alguma finalidade em específico nesse caso acredito que seria interessante colocar o resto do código.
Aqui tem uma explicação detalhada do porque:
Em poucas palavras: Isso facilita para que, no futuro, você possa trocar a implementação da lista, sem ter que alterar o seu programa inteiro. É considerado uma boa prática.