对于接口的作用,在一些小的项目上,很难看出其发挥的优势。这就使一些经常的做小项目的开发人员,做时间久了就感觉不到它有什么好的,有时候写起来还麻烦,干脆不用了。其实,在一些大项目上,接口的作用是发挥地相当的明显的。     比如:如果你开发业务逻辑代码,当你好不容易的实现了它全部的功能,突然用户需求要改,你在修改你代码的同时,调用你代码的其它人也会改,如果代码关联性强的话,会有很多人都要改动代码,这样一来二去,程序会变得相当的不稳定,而且可能还会出现更多的新Bug,所有人都可能会陷入混乱。    但如果使用接口的话,在你使用它之前,就要想好它要实现的全部功能(接口实际上就是将功能的封装)。确定下这个接口后,如果用户需求变了,你只要重新写它的实现类,而其它人只会调用你的接口,他不管你是怎么实现的,它只需要接口提供的功能。这样,很可能只需要把你的代码修改就可以了,其他人什么都不用做。同时:这样做的话,使得开发人员能够分工明确,只要确定下来接口了,就可以同时进行开发,提高开发效率。另外,使用接口还有使用方便,可读性强,结构清晰等优点。

解决方案 »

  1.   

    接口就是解决java不支持多继承的问题
      

  2.   

    把java23常用模式看看,理解下,看对你有帮助没。
      

  3.   

    电脑USB接口你懂吧,就如电脑的USB接口来说,电脑厂商在生产电脑的时候,他知道你用这个USB接口干嘛吗?对他不知道,他给这个USB接口给你;这个USB接口能起到什么作用;而且我需要用到这个USB接口去做什么事,生产的厂商是不管的,他给你这个USB接口就可以了。目前有很多的设备都可以连接到电脑的USB接口上来使用(如:充电,数据传输等)。那么为什么一个USB接口能实习这么多不同的功能呢?啊哈,这就是接口的好处了,如果生产电脑的厂商要去猜测用户会用那种设备去使用USB接口(比如:用户是用这个接口来充电呢?还是用这个接口来进行数据传输呢?),那么生成电脑的厂商是不是根据用户的使用习惯,要在电脑上放很多的USB的口(这种情况不叫接口了,所以我用口来表达)然后贴上标签,说这个口是用来充电的,这个是来进行数据传输的?你觉得这样你的电脑还会这么的轻薄好看吗?岂不是千疮百孔?那么接口的好处到底是什么呢?生产电脑的厂商把这些口(上面提到的用来实现具体功能的接口)的一些最基本的共同的特性提取出来,然后放个标准在这里。比如我的排线是如何排列的等等。然后怎样进行连接就可以和电脑的主板进行交互了。这些都是基本的特性,要和电脑主板进行交互,就必须要实现的。现在我把这个和电脑主板进行交互的标准发布出去,很多嗅觉灵敏的人就看到了这个,嗯嗯,这个标准我很容易实现,而且我还可以加其他的功能,好吧,我现在来做这个设备(实习这个接口)然后卖给其他人,他们做着做着发现,我按你的标准做出了一个设备,可以和电脑主板进行交互了,而且我还可以加其他功能(这个是卖点,也是特色)比如,我还可以给你另外的功能(连接外置摄像头来摄像)。是不是看出点好处了?对,好处就是,你只需要考虑主要的部分,其他的你不管,把你这个接口里面要实现的基本方法写出来(标准),发布出去就可以了,很多人就会说,这个容易,我来帮你实现吧,我还可以给你其他的功能。是不是有点买卖的意思?嗯,对啦!这样就实现了分离,可以只考虑软件的基本核心。你是不是担心别人做的东西,你用不惯呢?适不适合我呢?不需要担心,因为你发布出去之前,你定义了一个标准了的(接口必须实现的方法)。有了这些标准,就可以很好的和我的软件进行融合了,至于这些标准如何去定义(方法)就要看你的需要了,你现在需要什么,但是你没有,你就可以写在接口里面给别人去实现(当然也可以自己实现)。多用用看看就知道他的好处啦,祝楼主成功!
      

  4.   

    接口A定义一个移动方法
    实现类a1  可定义移动方法为步行实现类a2  可定义移动方法为跑步实现类a3  可定义移动方法为两轮实现类a4  可定义移动方法为三轮实现类a5  可定义移动方法为四轮突然有天你不想让实现类再必须能移动了 活着就行了  直接删了A中的移动方法  就搞定了总之你要是想定义一组相关类   把他们共同的特性放到接口里吧  方便管理  提高辨识度
      

  5.   

    接口:interface是一个规范,在他里面定义的全是抽象方法,接口通过类可以实现里面的方法,但在实现中,类必须实现接口里面的全部方法,否则该类就不能实现该接口,。接口和抽象类差不多,里面是抽象方法,但是接口和类应该是平级的,类和接口都可以继承,但是类是单继承,接口是多继承,一个类只能继承一个父类,一个接口可以继承比一个多的接口,但是一个类同时可以实现一个或者几个接口。还有一个共同点就是父类和接口的引用都能指向子类的对象。
      

  6.   

    你都没有理解接口的含义。类是对象的抽象,接口抽得更厉害,是类的抽象。不打机锋,直接看尘世的七情六欲。比如,你要一个充气娃娃,这个充气娃娃有一个makeLove方法,你买这个娃娃就是冲着makeLove去的,你不关心它是哪国的娃娃,长得怎样。那么代码就体现为:interface Chongqiwawa{
    public void makeLove(String name);
    }class Person{
     Chongqiwawa wawa;
     public void setWawa(Chongqiwawa wawa){
       this.wawa = wawa;
     }
     private String name;
     public void makeLove(){
      //调用wawa的makeLove方法
      wawa.makeLove(name);
    }
    现在,你想和wawa那个,就可以这样用了:
    main(){
      Person you = new Person();
      you.makeLove();
    }报错了吧?你怎么能跟虚的wawa那个呢?所以必须要买一个wawa.好吧,去逛成人店选购一个wawa.这里有日本娃娃,美国娃娃,先看看美国娃娃功能怎么样。class USAWawa implements Chongqiwawa{
       public void makeLove(String name){
         System.output.println(name + " come on! a,a, a..."); 
      }
    }
    好吧,你已经流口水了,一口价成交,然后带回家,迫不及待实践一下,代码体现为:
     main(){
      Person you = new Person();
      Chongqiwawa wawa = new USAWawa();
      you.setWawa(wawa);
      you.makeLove();
    }这时候你已经可以和娃娃水乳交融了。不久,你发觉厌倦了美国娃娃,想试下日本娃娃,再次来到成人超市,日本娃娃makeLove功能实现如下:
    class JapanWawa implements Chongqiwawa{
       public void makeLove(String name){
         System.output.println(name + " yemede! a,a, a...ganbade..."); 
      }
    }
    OK,你直接丢下一堆钞票一句不用找就抱回家了,马上进入主题: main(){
      Person you = new Person();
      //获得实际的wawa
      Chongqiwawa wawa = new JapanWawa();
      you.setWawa(wawa);
      you.makeLove();
    }
    看见了吗,只需改动一行代码,你就实现了娃娃的切换,得到不同的makeLove感受,其他代码都不用改。
    这就是接口!
      

  7.   

    接口大概有以下功能:1.作为一种标识,代表一种能力2.定义一种规范标准1. 什么是作为一种标识?就拿Serializable接口来说吧,它是一个空接口,但是如果你的类实现了该接口,就代表该类的对象拥有序列化的功能,具体它是怎么识别的这就涉及到底层的东西了,很多Xxxable这样命名的接口都表示拥有一种Xxx的能力2. 什么是定义一种规范,一般在比较大的项目中,需有用到分层架构了,上层调用下层的,一般是通过接口来调用。那到底是怎么定义规范的呢?就好像我跟老婆说要要吃饭,我最终的目的就是饭到手了然后吃,老婆就好比接口,她到底是通过用电磁炉煮的饭还是用电饭锅煮的饭我并不关心,最后只要给我煮熟的饭就可以。所以,接口的规范可以这样理解,就是你的接口方法,要求传入什么参数,返回的是什么参数就可以了,具体实现不用你关心,这就让接口方法的方法体的实现很灵活,但是返回的参数类型是一样的。
      

  8.   

    以java为例,类是不允许多重继承的,而接口是允许多重继承的! 
    接口的出现很好的弥补了这一点.或许也就是接口的好处所在! 
    此外,接口就是某个事物对外提供的一些功能申明.使用者只需要使用这些功能就可以了,而不必去关心实现的细节!这也是抽象的一种形式!
      

  9.   

    相同的接口,不同的实现。
    就好像电脑上的USB接口,可以插鼠标,也可以插硬盘等等。
      

  10.   

    接口的作用是实现多态。比如:两个动物,猫和狗,定义两个类,都能实现run方法。那就实现一个接口A,接口A中有一个run方法,让猫和狗都继承接口。那么在主类中,就可以写 A a = new Dog();a.run();改为猫的话,只需要写成A a = new Cat(),其他地方不用改。以此实现代码的有效性。
      

  11.   

    http://topic.csdn.net/u/20120801/09/db2b3959-1306-416b-86ce-ebb340777083.html楼主可以看看这个,这是前两天的一个关于接口的讨论。
      

  12.   

    不能这样抽象的理解接口有什么好处,你多实践在项目中接触接口(如mybatis等框架接口的使用),多练多想为什么会这样用,不用接口或者换成继承会如何,多思考,你这样抽象的问,情况很多就算你一时间记住了,以后你可能根本用不都,时间长了,你任然会忘记,所以还是在实践中理解,实践中熟练,然后你就会懂了。