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
It's best to return the most generic type that's appropriate for your interface.
If there's some reason why ArrayList is inherently appropriate for the data you're returning then you should use that. Typically List is fine but you might also consider using Collection if the returned values are inherently unordered:
