Considering definition of classes ArrayList and AbstractList in the package java.util
public class ArrayList<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, java.io.Serializable
public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E>
It's clear that when AbstractList implements List and ArrayList extends AbstractList, then implicitly ArrayList implements List.
What is the purpose of explicit clause implements List in ArrayList definition?