个数:由于对应关系,一个类只能继承一个父类, 但是实现接口可以有多个。
非抽象方法(普通方法):抽象类可以包含,接口不包含;
访问权限:抽象类有公共的,受保护的,默认的, 接口只有公共的和默认的;
静态方法:抽象类可以包含, 接口不包含 ;
静态方法变量: 都可以包含,但是在接口中必须是public static ,默认也是这个类型;
构造方法:抽象类包含, 接口不包含;
抽象方法主体:抽象类有, 接口没有;
成员变量: 抽象类, 接口没有;
用途:抽象类主要是代码的复用,但是累赘不推荐; 接口主要用于框架模块的设计,比如面向接口编程,好处是可扩展,松耦合,还是各模块之间的通信;