既然接口都是抽像的方法 不能定义方法体,还得在其他实现他的类中重写  那为什么还用到接口?还有什么特殊的用途?

解决方案 »

  1.   

    比如List就是一个很好的例子。接口就是一个规范,只要是符合这个规范的类就能通用。就好比插座,只要你的插头符合标准管你后面接什么都能工作
      

  2.   

    接口实现了程序的多态性;
    定义一个接口Inter,包含一个方法print();定义两个类ClassA,ClassB分别实现接口Inter中的方法;
    当用接口的引用调用方法时,其调用的方法为接口引用所指向的方法;见下程序:
    interface Inter{
    public void print();
    }
    class ClassA implements Inter{
    public void print(){
    System.out.println("class A");
    }}
    class ClassB implements Inter{
    public void print(){
    System.out.println("class B");
    }}
    public class Test {
    public static void main(String[] args) {
       Inter inter ;
       ClassA a = new ClassA();
       ClassB b = new ClassB();
       inter = a;
       inter.print();
       inter = b;
       inter.print();
    }}
    输出结果:
    ClassA
    ClassB
      

  3.   

    呵呵,看了ls的,真好笑接口,lz多做点联系就知道接口的好处了
      

  4.   

    你明白java的多态性吗?
    例如写一个数据库接口。以前是链接用mysql。现在突然换成sql server。你只要写一个实现数据库接口的类。
    多练习、多想、多看书
      

  5.   

    举个例子ClassA [] o = new ClassA [10];
     Arrays.sort(o);//这里的ClassA 必须实现java.lang.Comparable接口,并定义compareTo(Object o)方法;
     //类似还有很多,使用自定义的类做HashMap的key 则必须重写hashCode()方法;
     //要想对象可以克隆,则必须实现Cloneable接口,并且重写clone()方法;
    //要想用System.out.println(o);输出对象中的域和值,则要重写toString()方法
    //等等还有很多
      

  6.   

    首先java规定一个类可以实现很多接口,吸收了c++中可以有多个父类的做法,但比c++更加容易使用
    其次接口充分利用了java的多态特性,可以在运行时决定调用的是哪个具体实现
    再者面向接口编程减少了类之间的耦合性,方便软件的管理和组织
    其实spring里就用到了很多接口的特性
      

  7.   

    接口就是一种行为规范,使用起来更加方便。并且,对于一些语言,像java,不支持多继承,但是有了接口,这个问题就可以解决了。
      

  8.   

    言简意赅 
    java 提倡面向接口编程 这句P话就是接口的作用
      

  9.   

    接口,就是接口啊……实现了接口的类,要实现接口中的所有的方法,也就是说
    接口A  m()
    类B 实现 A
    类C 实现 A
    那么A 中有的方法B,C都要给出m()的具体的方法体。而且方法体可以不同,可以完成各自的业务逻辑。这样,当逻辑需要B中的方法时,调用B中的方法m()方法;当逻辑需要C中的方法时,调用C中的方法m()方法。这样就是先了多态,也就是接口的作用!know了?
      

  10.   

    接口可以多继随多一定程度上弥补了java单继承的缺陷。
      

  11.   

    一个东西实现接口。就好比主板上的接口。inter生产的cpu能装的主板上。ADM公司的cpu也能装到主板上。就因为同样的接口。大家都依据这个规范来开发。利于结构化。利于分组,分工合作。
      

  12.   

    个人理解,有三个方面的应用。
    1.多态。
          同一个接口,不同的实现类,采用了不同的实现方式。使得程序更具有适应性。
    2.程序的分层开发。
          横向或纵向的分层开发。
          比如,一个卖书的网站。
          横向可以MVC三层,先定义好业务层和持久层的接口,接下来就可以将具体的实现,交由其他同事来完成。
          纵向可以分层图书管理,交易管理,会员管理等等。先定义接口,具体实现可交由不同的小组来完成。
    3.动态类加载。
          在应用中,某个类需要热部署。如同JSP文件似的,更新了JSP,不用重启应用程,就能生效。
          我们知道,程序员可以自定义类加载器,进行类加载。
          一般都是,接口由应用程序的类加载器来加载,而其实现类,用自定义的加载器对象进行加载。
          编写程序监听实现类文件,当实现类文件变化时,创建自定义加载器对象,加载新的实现类。
      

  13.   

    hahaha 有几个回复太不要脸了 当然 这个也是
      

  14.   

    接口只声明了方法,没有实现方法,但千万不要因此而认为接口没有意义,因为接口不是为了实现而设计的,它是为了方便使用接口的人而设计的。接口可以理解成规范,规范定好了,实现规范的只管实现,使用接口的人只管使用。
    就象电源,它有规范:220V、50Hz、正弦交流电。
    而电源的提供者,无论是家里的还是办公室的,都按这个规范提供电力
    电源的使用者,包括洗衣机、冰箱、电脑,充电器,都按这个规范标准获得电源无论是实现接口还是使用接口,都不必关心另一方面的细节,这就减少了模块之间的耦合
    而同时,接口的实现者不会限制使用接口的是什么类型,就象电源不会限制只能给洗衣机供电一样;并且接口的使用者也不会局限接口的实现者,就象你家里的电吹风不会局限在只能用卫生间的电源。
      

  15.   

    比如:Collection it=new HashSet();  接口暴露了类的一部分方法,方便以后维护
      

  16.   

    把接口说成标准不知道你是不是好理解些。用过螺丝吧,那个就是有标准了,螺口都是有标准的,螺帽却可以设计成多种。电脑主板上的接口见过吧,至少USB接口见过吧,不论功能怎么变,要通过这个接口把两个东西联系起来~~~