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了


    推荐阅读