| NO | 区别 | 抽象类 | 接口 | 
| 1 | 定义关键字 | Abstract class | interface | 
| 2 | 组成 | 常量,变量,抽象方法,普通方法,构造方法 | 全局常量,抽象方法 | 
| 3 | 权限 | 可以使用各种权限 | 只能是public | 
| 4 | 关系 | 一个抽象类可以实现多个接口 | 接口不能继承抽象类,可以继承多个接口 | 
| 5 | 使用 | 子类用extends继承抽象类 | 子类用implements实现接口 | 
| 6 | 设计模式 | 模板设计模式 | 工厂/模板设计模式 | 
| 7 | 局限 | 一个子类只能继承一个抽象类 | 一个子类可以实现多个接口 | 
| 8 | 相同点 | 都是利用对象的多态性的向上转,进行接口和抽象类的实例化操作 | |
1.抽象类定义
Abstract class A{
Private static final String test=”test”;
Private String info=”hello word”; //变量
Public void print(){ // 普通方法
System.out.println(info);
}
Public abstract void get();//抽象方法
}
2.接口定义
Interface A{
Public static final String INFO=”hello world”;//接口中默认是全局常量
Public abstract void print();//接口中默认是抽象方法
}
3.抽象类实现接口
Abstract class D implements A{ }
4.接口不能继承抽象类,可以继承多接口
Interface C extends B ,C{}
5.子类实现多个接口
Public class implements A,b{}
原文:https://www.cnblogs.com/cainame/p/10326301.html