public class HashMap<K,V>
implements Map<K,V>, Cloneable, Serializable
public abstract class AbstractMap<K,V> implements Map<K,V>
Try removing the Map<K, V> from the implements clause and see what happens.
I don't think it makes any difference that this code is part of the standard library
I think it was declared as such for clarity only.