接口和抽象类的区别

个数:由于对应关系,一个类只能继承一个父类, 但是实现接口可以有多个。

非抽象方法(普通方法):抽象类可以包含,接口不包含;  

访问权限:抽象类有公共的,受保护的,默认的,    接口只有公共的和默认的;

静态方法:抽象类可以包含,   接口不包含 ; 

静态方法变量: 都可以包含,但是在接口中必须是public static ,默认也是这个类型;

构造方法:抽象类包含,     接口不包含;

抽象方法主体:抽象类有,    接口没有;

成员变量: 抽象类,   接口没有;

用途:抽象类主要是代码的复用,但是累赘不推荐;   接口主要用于框架模块的设计,比如面向接口编程,好处是可扩展,松耦合,还是各模块之间的通信; 

原文地址:https://www.cnblogs.com/JavaBlackHole/p/7579020.html