Possible Duplicate:
Why does ArrayList have “implements List”?
I have gone through several articles Diff b/w I vs AC and questions on SO about when to use an interface vs Abstract Class.
When I stumbled upon ArrayList Class, ArrayList class extends AbstractList Class implements List interface. AbstractList and List has common methods like add(), remove() etc.
Edit: In other words, if AbstractList implements List why have Arraylist class implement List
When is this kind of combination inheritance behavior design preferred when both have common methods?
public class ArrayList<E> extends AbstractList<E>
implements List<E>