目前小弟对接口概念理解的不是太清晰,怎样实现的方法我明白了就是不知道接口的作用到底是什么?请高手帮忙解答,先谢了

解决方案 »

  1.   

    因为接口这是声明了方法,而没有具体实现,这就为方法的实现提供了很大的灵活性。
    你可以通过不同的class来实现这个接口,在实现类中则可以用不同的方式实现接口中声明的方法,
    例如有接口
    public interface Computer{
      public String getInfomation();    
    }
    有以下两个实现类
    public class LCDComputer implements Computer{
      public String getInformation(){
       return "LCD";
      }
    }public class CRTComputer implements Computer{
      public String getInformation(){
       return "CRT";
      }
    }
    在实际应用中,可以通过为接口Computer指定不同的实现类,从而得到不同的结果。
    而调用接口中的方法的地方就不用理会接口的方法具体是怎么实现的。类似常说的“透明”这一概念。如果要修改接口方法的实现,也只需要让接口指向新的实现类就行了,而不必修改上层的调用方法
      

  2.   

    那比如说有一个ActionListener接口,我不去实现这个接口 我自己做一个接口写同样的东西不能实现监听吗 ?
      

  3.   

    那比如说有一个ActionListener接口,我不去实现这个接口 我自己做一个接口写同样的东西不能实现监听吗 ?不能,因为你所使用的框架只认识ActionListener这个接口,"ActionListener"的名字也是不能变的。除非你写的接口继承于ActionListener,否则它就是一个与监听毫无关系的接口
      

  4.   

    Java里没有多继承,接口的存在就是为了实现多继承,而且接口的作用不止于此,它可以提高代码的档次,提高程序的可维护和可扩展性,好的程序代码里,大量提倡使用接口,而不直接使用实现类,也就是通常说的暴露接口,而不暴露类,这样会使的程序日后升级和维护变的更加容易!还有一种接口是标志性接口,就象一个标志,这样的接口往往没有任何方法和代码,比如对象持久化接口,如果某个类实现了这个接口,系统就会自动把这个类持久化...
      

  5.   

    接口是为了实现客户与组件之间通讯的一种协议,客户只要知道这个协议就可以放心去使用组件提供的那些服务,而不用去关心服务的实现是怎样的,通过这种机制就很好地分离了变与不变的东西,接口是不变(或者很少会变)的抽象层,而java的具体类则用来实现那些抽象的概念,这就给我们的程序带来了高度的灵活性,使得我们可以在运行时对接口进行配置,从而可以选择不同的实现.呵呵,还是感觉对初学者来说有点深奥,接口其实主要是一个设计的概念.
      

  6.   

    我的水平不够你们高,我只理解的是一个类中所有的方法都是抽象的,那这个类就是接口~~~~~接口的具体作用,我也不是太清楚,刚刚学Java的~~~~~~~~~
      

  7.   

    1.接口就是一个纯抽象类。如果你是一个软件工程师,你可以利用接口把整体架构的方法名写出来而不用去实现它,至于实现就留给其他人去完成。
    2.接口不做任何事,只声明方法和变量,它声明的方法相当全局变量的作用。任何调用它的子类或继承它的接口都必须是抽象类,否则是不能调用的。而继承或实现该接口的类可以对接口中的方法进行覆盖,让接口中的方法实现某个具体的功能。
    3.一个类可以实现多个接口,而继承的话只能单个,不要说多个继承关系没有用,看看javadoc,有几个类不是实现了一个以上的接口,如 java.lang.String他实现了CharSequence, Comparable, Serializable 三个接口
    4.接口不是类,它是一组对类的要求,你可以使用接口来声明变量,然后指向实现了这个接口的类,接口可以被继承,可以从最抽象的接口一直到比较具体的
    5.引入接口的关键原因是java不支持多重继承,这主要是因为c++中多重继承的语法太过复杂
      

  8.   

    接口可以减少类间的耦合度;比如说我表现层可以只操作业务操作的接口,而业务逻辑发生变化时,表现层的一切都不会影响;在这个地方,接口的价值就体现了;而且,现在的Spring等无不体现着Java“面向接口编程”,而不应该是“面向实现编程”
      

  9.   

    你可以看一下Practical Java 这本书,里面有提到:
    interface 是一种契约(contract)表示法,不带实现,当你想要支持单一或多个interface继承,或为了确定某一et interface时使用,只允许有public 函数及public static final 常量。
      

  10.   

    可是同样的东西比如 
    public interface Computer{
      public String getInfomation();    
    }
    public class LCDComputer implements Computer{
      public String getInformation(){
       return "LCD";
      }
    }public class CRTComputer implements Computer{
      public String getInformation(){
       return "CRT";
      }
    }
    为什么还要接口啊,直接调用CRTCvomputerv.getInformation()不就行了么?我也是
    初学者,觉的接口的概念很不好懂。还有内部类。请高手指正
      

  11.   

    to linanbox21(java学习中) 
    你那样是具体指明了类型
    如果用接口,不用具体指明
    也就是所谓的polymophism
      

  12.   

    to linanbox21(java学习中):
    你这样想一下,在一个开发团队中,A负责b/s程序的UI层(就是jsp页面等)的数据展示及获取,B负责把UI层的数据(VO)存入或从数据库中取出来,B向A提供POJO,A不管B是怎样把数据存放或从数据中读取出来的,A只向B要POJO,然后把POJO转成VO使用即可,这样在开发时,A完成工作的进度比较快,B完成的进度稍慢,这时使用接口的话,A不管B的工作做到什么程序了,只需要调用A和B约定好的接口,把VO丢给B就行了,B可以根据接口慢慢写具体实现类。另外,假设B在项目之初操作数据库使用的是JDBC技术,后来发现用hibernate这个玩具不错,如果A和B使用接口来进行数据传递的话,那么不管B把操作数据库的类改成什么样,只要还是遵循A和B约定的接口去实现的,那么A什么工作都不用做了。这个假设的前提是项目使用的spring哟。说了一大堆,也不知道你明白没有。