1、抽象类在java中表示继承关系,一个类只能使用一次继承关系,却可以实现多个接口;
2、抽象类的定义中可以赋予方法的默认行为,但在接口的定义中,方法不能有默认行为
3、从设计理念上分析两者的区别,即抽象类表示的“is-a”关系,而接口类表示的是“like-a” 的关系
4、实现抽象类和接口的类必须实现其中的所有方法,抽象类中可以有非抽象方法,接口中只能是抽象方法
5、接口中定义的变量是 public static final型,且必须给其初始值,所以实现类不能重新定义,也不能改变其值
6、抽象类中的变量默认是friendly型,其值可以在子类中重新定义,也可以重新赋值
7、接口中的方法默认都是public abstract类型的