java-抽象类和接口的区别

1、成员区别:

 -  抽象类

    *  成员变量:可以变量,也可以常量

    *  构造方法:有

    *  成员方法:可以抽象,也可以非抽象

 -  接口

    *  成员变量:只可以常量

    *  构造方法:没有

    *  成员方法:只可以抽象

2、关系区别:

 -  类与类:继承,单继承,多层继承

 -  类与接口:实现,单实现,多实现

 -  接口与接口:继承,单继承,多继承

3、设计理念区别:

 -  抽象类:被继承体现的是:"is a"的关系。抽象类中定义的是该继承体系的共性功能。

 -  接口:被实现体现的是:"like a"的关系。接口中定义的是该继承体系的扩展功能。