java抽象类 接口的区别

解决方案 »

  1.   

    建议去看看<JAVA编程思想>
      

  2.   

    一个类可以实现多个接口,但只能继承一个类,抽象类里有公共属性,结构则是要实现的方法
    详细的推荐查阅Thinking in Java,或者百度一下
      

  3.   

    一个类可以实现多个接口,但只能继承一个类,抽象类里有公共属性,结构则是要实现的方法
    详细的推荐查阅Thinking in Java,或者百度一下
      

  4.   

    首先,abstract class在Java语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。也许,这是Java语言的设计者在考虑Java对于多重继承的支持方面的一种折中考虑吧。 其次,在abstract class的定义中,我们可以赋予方法的默认行为。但是在interface的定义中,方法却不能拥有默认行为,为了绕过这个限制,必须使用委托,但是这会 增加一些复杂性,有时会造成很大的麻烦。 在抽象类中不能定义默认行为还存在另一个比较严重的问题,那就是可能会造成维护上的麻烦。因为如果后来想修改类的界面(一般通过abstract class或者interface来表示)以适应新的情况(比如,添加新的方法或者给已用的方法中添加新的参数)时,就会非常的麻烦,可能要花费很多的时间(对于派生类很多的情况,尤为如此)。但是如果界面是通过abstract class来实现的,那么可能就只需要修改定义在abstract class中的默认行为就可以了。 同样,如果不能在抽象类中定义默认行为,就会导致同样的方法实现出现在该抽象类的每一个派生类中,违反了"one rule,one place"原则,造成代码重复,同样不利于以后的维护。因此,在abstract class和interface间进行选择时要非常的小心。 
    前面已经提到过,abstarct class在Java语言中体现了一种继承关系,要想使得继承关系合理,父类和派生类之间必须存在"is a"关系,即父类和派生类在概念本质上应该是相同的。对于interface 来说则不然,并不要求interface的实现者和interface定义在概念本质上是一致的,仅仅是实现了interface定义的契约而已。可以参考
    http://linpyi.javaeye.com/blog/223871
      

  5.   

    类是来继承的:extends
    接口是来实现的:implements
    实现接口的必须重写里面的所有方法,而抽象类不必要,它只需要重写里面的抽象方法即可!
      

  6.   

    选择Java接口还是抽象类?
    http://hi.baidu.com/xun1573/blog/item/ecb6c0cca42c0b1600e9280c.html
      

  7.   

       1.接口是java的多继承关系   抽象类还是java的一个比较特殊的类,单继承
       2.接口子类继承父类 要实现接口里面所有的方法  抽象类只是实现部分方法 ,但是要实现抽象方法
       3.接口里面的成员变量都是final 类型  而抽象类的变量只是普通类里的类型
       4.接口的方法必须是抽象的,而抽象类里可以有非抽象方法
       
    就记得这么多了 ,去网站上查下 
      

  8.   

    1、抽象类里面可以有抽象方法和非抽象方法,而接口里面只能定义抽象方法。
    2、抽象类里面可以有私有字段也可以有公有字段、方法,而接口里面只能定义是公共的(定义int类型的,默认为 public公共的 final常量)
    3、继承抽象类必须实现该抽象类的所有抽象方法(可以不实现非抽象方法),而接口必须是全部实现的。
    从简单编程的意义上讲,大致上就这些区别吧!