首先,abstract class 是一个类,interface是接口。java是单继承语言,那么一个类只能继承一个abstract class 但是可以实现多个interface。
其次,abstract class 可以有不是static和final的成员变量,可以有默认实现的成员方法(java8 中interface提供了default method新功能)。interface只能有static final的成员变量,并且所有的成员方法都是abstract的。
第三,interface的实现类可以不完全实现它的方法,这个实现类只能是abstract class。
第四,abstract class继承表示的是“is a”的含义,interface实现表示的是“like a” 的含义。---更详细的的以参考