首先必须明白Interface与abstract class的区别:Interface只能含成员函数的声明,不能有任何定义,而abstract class可以对部分成员函数提供实现。
    知道了区别后,就知道当你的类层次体系达到一定规模时,就很有可能在底层类中运用Interface,在较高层次用到abstract class,这样可以使类层次体系更加清晰。

解决方案 »

  1.   

    interface abc {
      float PI = 3.1415;
      public void say();
    }
      

  2.   

    在抽象类里不实现功能就像是接口了,只是声明时的关键字不一样
    你可以定义一个全部是abstract方法的abstract类,那它跟接口几乎没差别,只不过实现的方法不一样,这个是用extends
      

  3.   

    还有java不支持多重继承,但可以同时实现多个接口。
      

  4.   

    抽象类主要是为了继承用,我想大家都很清楚,派生类继承基类后通常覆盖基类中的方法以实现自己的方法,这样做的目的就是为了实现类的多态性,当你的软件中存在类的层次关系且存在相同的动作时通常很常用
    但有时我们需要从多个不同的"抽象类"覆盖不同的方法时,JAVA就做不到了,因为JAVA不支持多继承,此时的抽象类就用接口替代了,这样就实现自己的功能了
    总之看你的软件需求了,你可以选择以上两者中适当的方法
      

  5.   

    amjn(神雕过儿) said:
    用抽象类实现接口功能更强大/*************************************/何处此言?显然是接口更强大。。