1.接口是公开的(public)里面不能有私有方法或变量;而抽象类可以有私有方法和变量;
2.实现接口必须实现接口里的所有方法,而抽象类可以选择需要的方法重写;一般是顶级是接口,然后抽象类实现接口,具体类实现
3.接口类可以多重继承,而一个类只能继承一个超类;但是可以是通过继承多个接口来实现多重继承
当你关注一个事物的本质的时候,用抽象类;当你关注一个操作的时候,用接口。