为什么抽象类不能继承接口而接口可以继承接口?
一个抽象类implements一个接口,是不是不用完全实现接口中抽象方法???
为什么接口中的变量一定要是static 和 final?
什么时候用接口?什么时候用抽象类?
static修饰方法时有什么作用?
如果一个类继承了其它类,那么它还能有子类吗
  请java大侠帮忙!关于以上问题好多书上说的不清,真实误人子弟!
  最好具体一点!
  先谢谢各位大侠!

解决方案 »

  1.   

    谁说书上说得不清,thinking in java里面讲的清楚的不能再清楚了!
    接口只是极端化的抽象类.接口中的字段自动是static 和final的.这个和抽象类的原理一样,如果你继承一个抽象类,如果不实现它的抽象方法,不就必须也是抽象类,接口和这个一样.抽象类如果继承接口,必须得实现它的所有方法,这不就是implements吗?
    如果有可能尽量使用接口,只有强制你必须要具有方法定义和成员变量时,才应该选择抽象类.
    static 的方法你使用时,不需生成对象,就可通过类名调用.
    可以有子类.java只是不支持象c++那种多重继承.它的多重继承是通过接口和内部类来实现的.
      

  2.   

    接口中的抽象方法不需要加abstract.
      

  3.   

    1、抽象类中的抽象方法不需要加abstract吗???????(jbuilder 9中可以不加abstract)
    2、一个抽象类implements一个接口,是不是不用完全实现接口中抽象方法???(jbuilder9中可以不实现接口中的方法)
    3、为什么一个普通类前也可以加abstract(jbuilder9中可以)
    4、为什么接口的变量是static和final,有什么道理??????????????
    5、什么时候用接口?什么时候用抽象类?//////////
      

  4.   

    1.java规定的,接口可以多继承,但类只能单继承,包括抽象类2。不是,一定要全实现3。因为如果不是static 和 final,这些变量就可以在实现此接口的类中编写。interface只是定义一种form,要求实现此interface的类遵守这个form。至于具体类的变量(即不一定是static 和 final的数据),interface并不关心。4。从继承的层次判断使用接口或抽象类;从基类所能提供的信息决定用interface或抽象类5。static修饰的方法是不必产生此类的对象的都可以调用。例如:Date是日期类,如果你想知道星期几,你不用这样做:
    Data date=new Date();
    date.getToday();
    而你可以直接用:
    Date.getToday();6。当然可以
      

  5.   

    1.类与类永远只能继承,接口与接口也只能继承,类与接口只能用implements
    2.这个我还没有考虑过,我也是才学java,谢谢你能给我找出来这个问题.
    3,普通类前可以加abstract,它也是抽象类,必须通过继承来使用.
    4,final为常量,其值不能改变,所以用对象和类调用都一样,但是为了方便,加static,可以直接用类名调用.
    5.当你要用多线程的时候,你可以继承Thread类和实现Runnable接口来使用,但是当你的类已经继承了一个类的时候,就需要通过接口来实现多线程.继承是强制性的,接口不是强制性的.继承的时候继承了父类的默认行为.接口不具有默认行为.接口相当于定义一个协议,要使用接口,你就的遵守它的协议.
    当2个类之间具有is-a,is-like-a的关系的时候用继承,具有has-a的关系时用接口.
      

  6.   

    为什么一个普通类前也可以加abstract?
      这个的确可以,但加了abstract就不是普通类了,而是abstract类了.(不可以被事例化)
    这里你可以把abstract看成一种标记,就是加上abstract只是为了说明此类只是提供一些接口,不能事例化.至于类中的方法均有实现,可以把他们看成"钩子"函数,只是提供了一些默认的实现,子类可以重载,也可以不重载.一个抽象类implements一个接口,是不是不用完全实现接口中抽象方法??
    这个当然可以呀!为什么要完全实现接口中的抽象方法?抽象类和接口中都可以有抽象方法!
    如果是一个具体类implements一个接口,那必须完全实现接口中抽象方法,因为他可以被事例化.为什么接口的变量是static和final,有什么道理?
    由于接口不能事例化,所以如果不将变量设为static,则无法使用.
      

  7.   

    上面的几位高手回答和解释的有些不一样!不会java中有几中解释???
      

  8.   

    呵呵,首先说明我不是什么高手,我也是才学java的,建议看看<<java2完全探索>>中国青年出版社出的,上面应该可以找到你要的答案,自己觉得这本书真的不错,讲的比较全面,也很有深度.
      

  9.   


    java核心技术1 说的也不错只能继承一个抽象类,接口就能继承多个接口中字段都是自动设为public final的,默认就是这样,方法默认是public的