1、定义

1.1 抽象类

如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

1.2 接口类 

     接口(英语:Interface),在Java编程语言中是一个抽象类型(Abstract Type),它被用来要求类(Class)必须实现指定的方法,使不同类的物件可以利用相同的界面进行沟通。接口通常以interface来宣告,它仅能包含方法签名(Method Signature)以及常量宣告(变量宣告包含了 static 及 final),一个接口不会包含方法的实现(仅有定义)。在Java 8之后,被放宽为允许定义默认方法——在接口具体实现方法,和类静态方法。                                -- 来自维基百科       

2、区别

抽象类是对一种事物的抽象,即对类抽象,继承抽象类的子抽象类本身是一种 is-a 的关系。 而接口是对行为的抽象。 抽象类是对整个整体进行抽象,包括属性、行为,但是接口却是对局部(行为)进行抽象。 举个简单的例子,飞机和鸟是不同的事物,但是它们都有一个共性,就是都会飞。