抽象类与接口的区别可不可以这样理解:
一个其它的普通的类只能extends一个抽象类,但这个普通类可以implements多个接口;实现多个接口其实是变相的实现了继承多个类,而继承抽象类只能是同时继承一个抽象类 
可以这样理解吗   还有其它的主要区别吗

解决方案 »

  1.   

    看我的BLOG中《Java变成那些事儿》中关于抽象类和接口的说明
      

  2.   

    从 java的硬性要求上来说(表象) 
    1,抽象类可以给出一些成员的实现 接口不可以 
    2,抽象类可以部分实现 接口必须全部实现
    3,一个类只能继承一个抽象类但是可以实现多个接口
    从意义上讲(形态)
    1,类是对对象的抽象,抽象类是对类的抽象,接口是对行为的抽象.
    2,抽象类是从子类中发现公共的东西,泛化出父类的,而接口是不知道子类的情况下预先定义的(依赖倒转)ps:参考<<大话设计模式>>总结而出.可能理解上有些出入 仅供参考
      

  3.   

      我喜欢用比喻说明这个问题
      1.类的继承类似于家族的继承,类是单继承如同一个个只有一个亲生父亲,在程序中子类会继承父类所有信息,不过对于构造函数和私有数据来说
        子类不可以访问,但并不说没有继承
      2.借口是类家族外部的功能定义,不如说实现了某某借口意思是他将要拥有此接口的功能,这好比你想学习编程必须找个师傅,这个师傅就是一个接口,他不同于
        父类,你可以有很多师傅,不如说你想学开车,你想学厨师 你必须拜师来学习,也就是说你必须实现你师傅的这些功能不同的接口
      3. 父亲只能有一个,但师傅可以有多个。
      我想你应该明白了,理解不了程序,你就理解生活!
                                                    --xuejianxinokok @tianjin