RT。热烈欢迎各位舌战。

解决方案 »

  1.   

    抽象类与接口紧密相关。然接口又比抽象类更抽象,这主要体现在它们的差别上:1)类可以实现无限个接口,但仅能从一个抽象(或任何其他类型)类继承,从抽象类派生的类仍可实现接口,从而得出接口是用来解决多重继承问题的。2)抽象类当中可以存在非抽象的方法,可接口不能且它里面的方法只是一个声名必须用public来修饰没有具体实现的方法。3)抽象类中的成员变量可以被不同的修饰符来修饰,可接口中的成员变量默认的都是静态常量(static fainl)。4)这一点也是最重要的一点本质的一点"抽象类是对象的抽象,然接口是一种行为规范"。
      

  2.   

    1)在继承抽象类时,必须覆盖该类中的每一个抽象方法,而每个已实现的方法必须和抽象类中指定的方法一样,接收相同数目和类型的参数,具有同样的返回值,这一点与接口相同。
      2)当父类已有实际功能的方法时,该方法在子类中可以不必实现,直接引用的方法,子类也可以重写该父类的方法(继承的概念)。
      3)而实现 (implement)一个接口(interface)的时候,是一定要实现接口中所定义的所有方法,而不可遗漏任何一个。
      4)另外,抽象类不能产生对象的,但可以由它的实现类来声明对象。
    在实现接口时,我们也常写一个抽象类,来实现接口中的某些子类所需的通用方法,接着在编写各个子类时,即可继承该抽象类来使用,省去在每个都要实现通用的方法的困扰。
      

  3.   

    首先java接口和抽象类代表的就是抽象类型,就是我们需要提出抽象层的具体实现,如果要提高程序的复用率,可维护性,可扩展性,就必须面向接口和抽象编程,正确使用他们。
      

  4.   

    (1)抽象类可以提供实现方法,接口不能
    这是抽象类的唯一优点,而且非常有用,例如,你定义一个接口,子类不需要他的所有方法,可是你没办法不去实现所有方法,因为你实现的是接口而不是抽象类,具体办法后面解释
    (2)抽象类只能继承一次,而可以实现多个接口
    这样接口的优点就出来了,例如每个接口可以代表一种最顶层的抽象,可以理解为代表一类东西,如果一个类实现了多个接口,那这个类就有了多种类型,即接口是定义混合类型的理想工具
    最后:有一种设计模式,就是,默认适配模式,意思就是说,首先定义一个接口,通过抽象类实现这个接口,并实现一些子类不需要一定实现的方法,然后,子类就可以选择是继承接口,实现所有方法,还是直接继承这个抽象类实现具体需要的方法,当然实现这个接口的抽象类可以不止一个,我本人认为,如果你抽象出一个父类,然后让子类直接继承这个父类是有问题的,因为最顶层应该是抽象类型O(∩_∩)O~希望对你有帮助\(^o^)/~
      

  5.   

    建议看看这个帖子
    http://topic.csdn.net/u/20100312/10/822b0e94-8d2f-4bf0-9746-3424eaea40ce.html
      

  6.   

    因为有些程序员比使用接口的人懒惰,但比使用类的人勤奋good luck
      

  7.   

    一个class 如果extends abstract class 那么它必须重写父类中的所有抽象方法,或者继续让它抽象。
    但如果这个class 实现的是一个interface 那么我们没有必要再去关心那些我用不到的方法,因为我只需要在接口中定义我需要的就可以了。这也是接口的好处,能够实现多继承
     
      

  8.   

    使用接口可以弥补Java类只能单继承的不足。
      

  9.   


    你所说的就是 标识接口。标识接口表明实现了它的类属于一个特定的类型。
    比如java中很有名的应用 java.io.Serializable和java.rmi.Remote.我觉得主要是应用在某一类的类的共同特征就是某一个特性,比如可序列化,但是由于实现方式实在是多样化,没有办法提炼到更上一层的接口中,所以就只好保持空接口。另外,抽象工厂模式中的顶级工厂和顶级产品,就应用了标识接口。 
    只要实现了这些接口的都认为是工厂类型或者产品类型。 呵呵
      

  10.   

    接口是各类问题共有行为的定义,如Clone接口等
    而抽象类是对某类问题行为与数据域的定义