http://dev.csdn.net/article/65/65350.shtm这个文章有比较全面的分析,建议楼主可以参考一下

解决方案 »

  1.   

    接口只提供函数的定义,要求实现接口的类必须实现的功能。
    但是接口内的函数是没有函数体的。
    抽象类同样可以提供抽象函数,要求子类实现。
    但是也可以提供具体的函数,供子类使用“super”关键字调用。当然,子类可以override这种函数。
    同时,抽象类中可以有变量,这是接口不具备的。
      

  2.   

    抽象类中可以有变量,这是接口不具备的。
    这个说法是不对的,呵呵,建议看一下Think in Java,接口也可以有变量。
      

  3.   

    <Thinking in JAVA>中说:接口是更加纯粹的抽象类。
    接口中不允许有任何方法实现,相比抽象类,是更高层次的抽象。
    一个抽象类仍然是类,可以有自己的构造方法。而接口不是类,只是一些规范。从这一点上来看,他们有着非常本质的区别。
    还有,接口可以多重扩展(继承),即一个接口可以扩展多个接口,一个抽象类则不能扩展多个抽象类,只能是一个。
      

  4.   

    这个涉及到你对问题领域的理解!!如果是"is_a"的关系,用抽象类如果是"like a"的关系,用接口
      

  5.   

    接口也可以有变量
    但只能是STATIC FINAL的