abstruct class与class的区别在于前者不能用new进行实例化。一般在该类内部都存在一些抽象方法(即只给出定义而没有具体实现)。需要继承的子类或超类实现其方法。
interface可以认为是“纯”的abstruct class.区别在于前者在实现接口时必须实现所有接口方法。而后者只须实现声明为abstruct的方法。抽象方法:只含声明,没有主体。 如  abstruct void x();示例:class OriCs { void x(){}}
abstruct class AbsCs { abstruct void y();}
interface JieKou { void z(); }

解决方案 »

  1.   

    以上3者的差别主要在于method的实现上面定义为class的方法一定都要实现,不能有一个或多个方法只有method定义而没有实现。定义为abstract class的类,可以有一个或多个方法定义,不用实现,甚至可以都不实现,当然都实现也没问题。注意:只有方法定义的method前面一定要加上abstract关键字,有abstract method的类一定要声明为abstract classinterface的所有的方法都只要定义而不用实现,所有的方法实现都在子类中实现。interface主要用于多重继承,让一个类可以拥有多种特性。例如:
    class A extends Canvas implements Runnable
    {
    ......}class A继承了Canvas,可以用来画图,也有Thread的特性,可以起另一个线程来载入图片。不知道这样的回答,你是否满意。
      

  2.   

    建议你认正看一下Think in java吧
    里面讲解的很清楚,而且有例子。---
    这些东西在论坛上问,是得不到什么提高的
      

  3.   

    你不能直接用一个abstract 类的方法,你必须继承这个abstract class ,
    当一个类中的方法暂时还没有方法体的时候,最好吧他定义为abstarct class,
      

  4.   

    各位都在讲实践,没人讲理论嘛class,abstract class,interface这三个东西的区别不仅仅在这些外部特征上。class是对实际问题的映射;interface则是对于可接受的消息的定义。所以每一个object has an interface。abstract的意思,更多的是“抽象”。即使全部的方法都不是abstract,也可以定义abstract class。它的意义在于对实际问题更高层的抽象,说白了,就是做“不存在”的基类。就象“动物”这样的类,一般都是abstract的,因为世界上没有“动物”这个东西,只有属于“动物”这个类型的东西。很拗口哦。这些理论书上有讲,不过想真正理解,
    1。大量的实践+悟性
    2。英文要好thinking in java的中英文版区别很大,就像所有的书一样。
      

  5.   

    TIJ里面建议能用Interface尽可能用Interface,你想在Java里面只有单继承,这个权利可是要谨慎利用的,Interface是无所谓的有多少都行。这个做法比较理论化的说法是,可以更好的保持一个层次结构。呵呵。楼上有些人闲问题浅显,那就在你设计时,什么时候定义为abstract,什么时候定义为Interface;如果要实现一种“继承”关系时,两种都可选,你是选择实现Interface,还是选择继承类呢?
    说实际点,别老是看了书,知道了有这么回事就在这评论。
      

  6.   

    Inteface不能实例化,但是有的函数返回可用的Interface,如Vector的element返回的是enumeration接口,接口的函数就可以用了,是怎样实现的?
      

  7.   

    这就是interface的意义了——隐藏实现。定义借口,就可以独立的进行围绕接口的开发,这还是很和逻辑的哦。你可以看看关于这方面的概念书,比如thinking in java,研究一下jvm具体的实现细节。