不能写成Map map = new Map()这样是因为:
Map是接口,hashMap是Map的一种实现。接口不能被实例化,只能使用其实现类来实例化,而Map map=new Map()是错误的
在Java中 Map map = new HashMap()为什么不写成HashMap map = new HashMap()呢?
这是出于代码的维护性来考虑。
对于:Map map = new HashMap()
是定义了一个接口,我们直接调用这个接口就可以完成我们想要的动作,别人在使用时调用此接口便可以,而不用管内部实现逻辑。
以后如果有变动,不用管这个接口,只需要修改实现这个接口的类即可。
而对于 :HashMap map = new HashMap()
我们定义的就是一个实现类,把这个类给别人用,在出现问题和改动的话,那么程序就无法运行,凡是用到这个类的地方都要修改,维护起来很麻烦,而上面的接口,你只需要改你实现这个接口的实现类就可以了