Why ArrayList need List interface?