HashMap集合详解专题-04HashMap继承关系

HashMap继承关系如下图所示: ![image.png](https://images.codewd.com/b512f10fb540558261645601b7ff58cd.png) **说明:** Cloneable 空接口,表示可以克隆。创建并返回 HashMap 对象的一个副本。 Serializable 序列化接口。属于标记性接口。HashMap 对象可以被序列化和反序列化。 AbstractMap 父类提供了 Map 实现接口。以最大限度地减少实现此接口所需的工作。 **补充:** 通过上述继承关系我们发现一个很奇怪的现象,就是 HashMap 已经继承了AbstractMap 而 AbstractMap 类实现了Map 接口,那为什么 HashMap 还要在实现 Map 接口呢?同样在 ArrayList 中 LinkedLis 中都是这种结构。 据 Java 集合框架的创始人 Josh Bloch 描述,这样的写法是一个失误。在 Java 集合框架中,类似这样的写法很多,最幵始写 Java 集合框架的时候,他认为这样写,在某些地方可能是有价值的,直到他意识到错了。显然的,jdk 的维护者,后来不认为这个小小的失误值得去修改,所以就这样保留下来了。