开发时推荐使用Map map = new HashMap()

发布时间 2023-11-09 14:07:15作者: Realife

Map map = new HashMap();
Map是一个接口,HashMap是具体的实现类。
由于接口就是多个类的共有规范(里面的抽象方法),是一种引用数据类型,一个抽象的概念,不能被实例化,因此接口需要由具体的类来实现。
这条代码指明:由HashMap类来实现接口Map中描述的方法。

HashMap map = new HashMap();
声明一个HashMap类型的map,由HashMap类实现。

为什么更推荐第一种用接口的声明方式?
这个问题等同于为什么要在编程中使用接口,而不是直接使用实现类。其实这就是面对对象编程(OOP)的思想精髓。简单来说就是:上层接口描述的功能不变,下层的具体实现可以不断修改替换。上层的调用者只用知道map的功能,不必关心map的具体实现。

例如,某天开发人员开发出一个各方面性能都优于HashMap的SuperMap类,则map可以直接改成由SuperMap来实现:Map map = new SuperMap()。对于外部调用者来说,使用的还是那个map,殊不知底层实现的升级已经让他们用上了优化版的map。如果一开始就定义map为HasMap类型,无法做出这样的优化,很明显 HashMap map = new SuperMap() 是条错误的代码。这就是使用接口声明的好处,增加系统灵活性,隔离性等。

转载https://blog.csdn.net/qq_45477595/article/details/106087948