比如说 list a=new ArrayList();
和ArrayList a=new ArrayList();
区别是什么?

解决方案 »

  1.   

    面向接口是好习惯提供接口你可以修改自己的实现而不影响使用者。
    就像JDBC,使用不同的数据库驱动不影响JDBC的使用
      

  2.   

    首先你要搞清楚为什么JAVA中会出现接口这个东西,因为JAVA本身并不支持多重继承,如果一个类B继承了类A,那么类B就无法再继承类C了(当然了,前提是类A、C两者之间不存在继承关系)。
    如果此时我要让类B即具有类A的功能,又想类B具有类C的功能,我要怎么办呢,最好的方法就是接口。我可以把类C换成为接口。在类B中使用extends A implement C。这样的话类B就同时具有了类A、C的功能。如果你要用继承机制的话,是无法实现的。所以用接口实现的对象可以不受个数的限制而实现多个类的功能
      

  3.   

    比如 List a=getYouList();
    getYouList()是ArrayList getYouList(){...}这样定义的;但如果程序变更,需要返回LinkedList,即LinkedList getYouList(){...};那么List a=getYouList()就不需改变.