1、定义接口的关键字是interface ,抽象类的关键字是abstract class
2、接口中的方法都是抽象的,抽象类中可以有方法的实现(即非抽象方法)
3、一个类可以实现多个接口,但只能继承一个抽象类,所以一般来说,可以使用接口实现的尽量使用接口实现。比如Runnable就比Thread使用频率高的多
4、接口和抽象类中都可以定义变量,但是接口中定义的必须是公共的、静态的、Final的,抽象类中的变量跟普通类中的没有区别。
5、抽象类可以包含静态方法,但是接口中不可以!
6、接口中的方法必须是public的,抽象类中的方法可以使public 和 protected的
7、从设计上来说,接口是对一系列行为的抽象,而抽象类是对事物的抽象。