【知识点】接口和抽象类的区别

相同点:

  • 都不能实例化
  • 都可以被实现或者继承
  • 继承或者实现的子类需要实现全部抽象方法,否则需要声明为抽象类

不同点:

不同点 抽象类 接口
声明 abstract interface
继承/实现 extends implements
构造器 可以有构造器 不能有构造器
方法 抽象方法和具体方法 抽象方法和默认方法
方法修饰 可以是任意修饰符 默认public且只能是public
多继承 子类只能继承一个抽象类 子类可以实现多个接口
成员变量 可以任意声明 默认且只能声明为 static final

抽象类通常用来捕捉子类通用特性,是一种模板设计。
接口是对行为的抽象,或者说约定。

选择原则:

  • 行为模型应该用接口而不是抽象类来定义,所以通常优先选用接口,尽量少用抽象类
  • 当即需要定义子类行为,又要为子类提供通用功能时,可以选择抽象类
posted @ 2024-03-26 22:05  code-blog  阅读(5)  评论(0编辑  收藏  举报