简单的说也就是能兼容更多的类型,改动的时候更方便比如,需求改成要用LinkedList ,就只要改一处

解决方案 »

  1.   

    首先接口出现的意义就是帮助Java语言实现一个类似于多继承的功能.但是实现的多继承功能不会使代码中的类之间出现网状关系,而是比较清楚的树状关系,类似于家谱的感觉.
    接口也不是什么都好的,一般在开发的时候接口是不会随便改动的,因为接口的改动就意味着要变动它的所有实现类.
    实际应用中,接口中是对外公开的模块的业务方法,而且接口的命名更符合我们对接口(具体实物)的理解,比如USB接口,我们在理解的时候可以以一个实物的方式来理解.
    另外,JVM在加载接口的时候,对接口的空间分配(堆与栈梆定)与类是不一样的.这也就是为什么JAVA里没有类之间的多继承,而是用接口来实现一个多继承的模拟.
    不知道楼主有没有明白一点.
      

  2.   

    太狭隘!接口的出现完全是一种新的思想,而非所谓的单单为了多重继承。
    简单点讲就是,我要做什么,你能做到就OK,其它我不关心,真正体现了OO的精髓---抽象
    List list=new ArrayList();
    是让ArrayList向上转型,但是实际是怎么回事?//实际因为ArrayList满足List的功能要求
    其他的面向接口编程的和这个我估计是相同的,不知道哪位高手能指点一下?//看下依赖注入的接口注入
      

  3.   

    楼主你看下什么是"面向接口"在来吧
    你提的问题叫"泛型"List 是ArryList 的父类,比如:ArrayList array1=new ArrayList();
    List array2=new ArrayList();List类中有方法A而ArrayList中没有,那样的话,
    array1就不能调用A方法,但是array2可以。
    明白??
      

  4.   

    5楼,ArrayList是从List接中继承,怎么可能没有A方法。
    List list = new ArrayList(); 
    这样定义的好外是list 的类型是List,而不是ArrayList,我们调用的都是List中的方法,而不是ArrayList中的。有朝一日如果为了效率之类的改进需要改变ArrayList到LinkedList的话,不需要重新定义,而LinkedList也拥有List的方法,这样就不需要改变现有代码,至少有改动也会非常少。
      

  5.   

    java.util.List这个类,你看你是不是类导错了