No | 区别 | 抽象类 | 接口 |
1 | 定义 | Abstract | interface |
2 | 组成 | 普通方法 抽象方法 构造方法 普通属性 | 抽象方法 全局常量 默认方法 |
3 | 访问权限 | Public private | public |
4 | 关系 | 一个类只能继承一个抽象类 | 一个类可以实现多个接口 |
5 | 使用 | extends关键字 | Implements关键字 |
6 | 特殊点
|
| 一个接口可以继承多个接口 |
相似性:
接口和抽象类都不能被实例化 只能用于被别的类实现和继承
实现接口或者继承抽象类的普通子类都必须实现这些抽象方法
不同性:
接口只能包含抽象方法 静态方法 默认方法 不能为普通方法提供方法实现 抽象类则可以包含普通方法
接口中只能定义静态常量 不能定义普通成员变量 抽象类则可以定义普通成员变量和静态常量
接口不能包含构造器 抽象类可以包含构造器(用于完成初始化操作)
接口中不包含初始化代码块 抽象类里完全可以包含初始化快
接口弥补Java单继承不足之处