یکی از دلایل این کار استفاده از قابلیت چند ریختی یا polymorphism در برنامه نویسی شئ گرا است. شما با این کار می توانید هر زمانی که یک پیاده سازی لیست بهتر یا سریعتر داشتید براحتی و با کمترین تغییر اون رو جایگزین ArrayList در کدتون بکنید.
در کل برنامه نویسی بر پایه interface ها باعث میشه قابلیت های maintainability و reusability کد های شما بالا بره.