为什么new一个HashSet或HashMap的时候,要用他们的父类来定义变量?

为什么new一个HashSet或HashMap的时候,要用他们的父类来定义变量?

为什么new一个HashSet或HashMap的时候,要用他们的父类来定义变量?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

 您好,举个栗子:譬如Map,因为Map是一个接口,其中HashMap、TreeMap等集合都是Map的实现类,这里涉及到多态的概念,所以Map map = new HashMap();实际上是使用map的引用指向了实现类,在这里我们可以使用map变量来引用HashMap,那么也可以使用map来引用TreeMap,譬如:Map map = new TreeMap();理解了map,set也可以按同样的方式去理解。祝学习愉快!

  • 陈粤 提问者 #1
    好的,谢谢。那么如果直接用实现类创建一个对象来使用,和接口引用有什么区别么?比如我直接定义一个HashMap的类的对象来使用。
    2018-09-25 13:43:52
  • 好帮手慕雪 回复 提问者 陈粤 #2
    主要是为了以后的维护。例如以前用的是HashMap实现的,后来由于项目特点变了,可能用HashMap更合适,那你只改一行代码就行了,就是new的这个地方改一下。别的地方不用动。
    2018-09-25 15:40:33
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师