Это делается согласно конвенции. Такая форма записи вам дает преимущества. Допустим вы создаете список в таком виде:
List<E> arrayList = new ArrayList<E>();
потом поработав с ним, оказывается, вам необходимо удалять множество значений из списка. Но arrayList для такого не подходит (он медленный при удалении объектов, ввиду внутренней реализации). Окей, не проблема. Вы берете переменную arrayList и ссылаете ее на LinkedList
arrayList=new LinkedList<>();
(не забыв перенести элементы). И LinkedList позволит вам эффективно удалять элементы из листа. При создании листа как arraylist - вы бы так не смогли сделать. То есть это намного удобней, вы создаете объект как Лист и в дальнейшем не паритесь о его реализации, вы просто знаете что это Лист. Вы к ней не привязаны - и можете манипулировать объектом, и в любой момент можете изменить его реализацию. Короче, прям реально ощутимых преимуществ это не дает, просто так удобней.