接口和抽象类的区别与联系

118 阅读1分钟

注:本专栏文章均为本人原创,未经本人授权请勿私自转载,谢谢。

相同点

  1. 都无法直接实例化,需要子类对抽象方法进行实现。

不同点

1. 方法定义

  • 接口中的方法默认为 public abstract 的抽象方法,接口方法可以有 default 标记的默认实现;也可定义 public static 的静态方法,但必须有方法实现,通过 “接口名.方法名” 调用。
  • 抽象类中可以定义的方法类型与普通类中相同。

2. 变量定义

  • 接口中的变量只能为 public static final
  • 而抽象类中任何变量类型与普通类中相同。

3. 继承实现

一个类可以实现多个接口,但只能继承一个抽象类。(接口也可通过 extends 关键字扩展多个接口)。

4. 设计思想

接口是对实现类行为的规范抽象;而抽象类则是对实现类的模板设计。