Friday, May 7, 2004 11:43 AM
Strictly speaking, it does not need to declare "implements List" since as you say it extends AbstractList, which already implements List.
I think it is done to make the programmer's intent clear; it's a question of style. ArrayList should definitely implement List, so the programmer writes that. It also extends AbstractList, which implements List, but if that were to change we want to know that ArrayList still implements List. That is, the fact that ArrayList implements List should not depend on the fact that it happens to extend AbstractList.