Java中,类实现l了接口,可为何还是用接口去定义新的实用例
知道什么叫多态吗?ArrayList只是一个实现了List接口的类意味着,右边的ArrayList可以随时改变成任何实现了List接口的阿猪阿狗类。通俗的意思就是说电话 一台电话 = new Iphone()电话 一台电话 = new 山寨机()一台电话.打电话()因为 接口 电话 定义了 打电话()这个function所以无论使用iphone还是山寨机,只要实现了电话接口,那都可以随时替代在系统中就是可以随时扩展,比如ArrayList类的功能不够实现自己理想的,那你可以再扩展ArrayList类(继承)或直接扩展实现List接口做一个实现类去随时替换,都不会影响下面引用 list这个变量的地方(因为基于List接口中定义的方法)如果还有疑问,建议看看设计模式,理解一下多态的好处。或许你会想,我改代码的时候对应修改就可以啊,但别忘记了封装比如你系统写好了,你不可能总是改代码的,最好的方法可以提供一个属性设计 List _listfunction set list(value:List):void{ _list = value;}使用的时候 var xx:类 = new 类实例();xx.list = new ArrayList(); //或任意实现List接口的类上面的就叫封装,通过赋值而不是改代码的方式(即使是改代码也是新建类,通过属性传送引用的方式),多态的好处就体现在这里。
■网友
写成List l = new ArrayList();然后l还可以指向LinkedList等其他的List呀写成ArrayList l = new ArrayList();你的l就永远只能指向ArrayList,不能指向其他的List了
推荐阅读
- 北京22家市属医院均开展安检基本实现重点区域安检措施全覆盖
- 长江流域渔民退捕“上岸”实现扩产新致富
- 实现“甜蜜计划”,这对中哈跨国夫妻好甜
- 北京地铁11号线西段三座车站提前实现主体结构封顶
- dart这编程语言现在发展怎么样了,语法与Java,c#很相似,甚至更简洁
- Java工程师和C++工程师在工作上有啥区别哪个更适合自身发展
- 特斯拉|特斯拉将全面发布全自动驾驶软件最新版,曾承诺年底实现完全无人干预
- |徐州建有农家书屋2205家,实现数字书屋全覆盖
- 阿里云|【GET2020】阿里云解航:在线教育帮助线下教育一起实现教育公平和个性化
- 我有几个app点子,拉出来比较容易实现的一个和大家探讨,只差程序员(替你们说了)请问这个点子咋样