注:本专栏文章均为本人原创,未经本人授权请勿私自转载,谢谢。
相同点
- 都无法直接实例化,需要子类对抽象方法进行实现。
不同点
1. 方法定义
- 接口中的方法默认为 public abstract 的抽象方法,接口方法可以有 default 标记的默认实现;也可定义 public static 的静态方法,但必须有方法实现,通过 “接口名.方法名” 调用。
- 抽象类中可以定义的方法类型与普通类中相同。
2. 变量定义
- 接口中的变量只能为 public static final。
- 而抽象类中任何变量类型与普通类中相同。
3. 继承实现
一个类可以实现多个接口,但只能继承一个抽象类。(接口也可通过 extends 关键字扩展多个接口)。
4. 设计思想
接口是对实现类行为的规范抽象;而抽象类则是对实现类的模板设计。