Java的interface和abstract class都可以定义不提供具体实现的方法,它们的区别在于:
1.一个类不能继承自多个abstract class,但是可以实现多个interface;
2.从语言层面上面来讲:abstract class可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface中,只能够有静态的、不能被修改的数据成员(也即interface是static final的),所有的成员方法都是abstract的。从这种角度来说,interface是abstarct class的一种特殊情况;
3.abstract class可以提供某些方法的部分实现,而interface不可以;