正在回答
2回答
同学你好,这里不要想复杂,结合下图的举例来简单理解哦:
一开始我们使用Set hashSet = new HashSet(); 来添加字符串,也许哪一天需要换成其它的实现类呢?这时这个方法的返回类型Set就不需要改了,只需要将HashSet更改为TreeSet就可以了。
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
好帮手慕小脸
2020-06-02 19:01:48
你好,Set set = new HashSet();这句创建了一个HashSet的对象后把上溯到了Set。此时它是一个Set引用了,有些HashSet有但是Set没有的属性和方法,它就不能再用了。
而HashSet hs=new HashSet();创建一对象则保留了HashSet的所有属性。Set有多个实现类,例如修改为LinkedSet等时,这个方法的返回类型就不需要改了,并且调用这个方法的所有类都不需要修改
假设开始用 HashSet set= new HashSet(), 修改的地方就多了,特别是如果使用了HashSet特有的方法和属性。如果没有特别需求的话,最好使用Set set= new HashSet(); 便于程序代码的重构. 这就是面向接口编程的好处。
祝学习愉快~
java工程师2020版
- 参与学习 人
- 提交作业 9400 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星