I find myself agreeing to return an interface instead of a concrete class.
The reason is simple, i want loose coupling.
But will there be other implication
Implication is that you wont be able to call methods of ArrayList that are not methods of List interface for the objects returned.
But if the object is an ArrayList you can do a cast.