【发布时间】:2012-06-25 20:46:44
【问题描述】:
可能重复:
Java.util.HashMap — why HashMap extends AbstractMap and implement Map?
在java中实现HashMap<K,V>需要实现Map<K,V>。
但是,当我在 java 类中进行更多调试时,似乎...... java 将HashMap 类定义如下。
public class HashMap<K,V>
extends AbstractMap<K,V>
implements Map<K,V>, Cloneable, Serializable
同时我看到public abstract class AbstractMap<K,V>实现了Map<K,V>它也实现了接口Map<K,V>。
如果抽象类实现了接口,那么在HashMap类级别实现Map<K,V>的原因是什么?
据我了解,HashMap 类具有从AbstractMap 继承的所有方法,可以根据要求由HashMap 覆盖。
【问题讨论】:
-
也许当它在 Java 1.2 中设计时,即使超类已经实现了 IMO,类也需要实现接口。
-
见this。它指出了类似的情况
-
是的......它应该作为副本关闭。
-
这不是说明所有的方法都在子类中显式定义了吗?
-
@user845279 - 不。因为它没有。
标签: java inheritance hashmap