Map接口问题
今天翻了一下java的api,发现HashMap继承了AbstractMap,AbstractMap已经实现了map接口,为什么HashMap又一次显示的实现了map接口,为了用反射的时候更方便获得map接口?
------解决方案--------------------往简单了想 , 其实就是增加可读性, 大多数程序员只关心是不是Map 没人关心是不是AbstractMap ,所以Sun公司想到了很多程序员会看JDK源码, 不如直接标识出来, 省得再追加一步.
往复杂了想, 思维的先后顺序应该是先有接口定义, 后有实现类, 几个实现类写完之后发现很多重复代码, 应该在中间抽取出一个骨干抽象类, AbstractMap是后出现的.
------解决方案--------------------HashMap如果不实现Map接口,,如果以后AbstractMap类被废弃,HashMap是谁的子类
HashMap如果实现Map接口,不管AbstractMap存不存在,它都是遵循协议的,有AbstractMap的时候HashMap可以多用几个方法,没有AbstractMap,HashMap还能自己写。