CS-Notes 学习笔记
Java 后端 · Java 基础

抽象类和接口有什么区别?分别用在什么场景?

先自己想一想,再看参考要点

参考要点

  • 设计上抽象类是 IS-A 关系,接口是 LIKE-A 关系,只提供方法契约
  • 一个类可以实现多个接口,只能继承一个抽象类
  • 接口的字段只能是 static final,成员默认 public,抽象类没有这些限制
  • 相关类共享代码、需要非 public 成员或非常量字段时用抽象类,让不相关的类具备同一行为(例如 Comparable)时用接口,多数情况接口优先
在学习站中自测这道题看这道题所在的一天

学习站:先用面试题自评定级,按水平和面试日期排出每天的计划,自评过的题按间隔复习。免费、无需注册,记录只保存在自己的浏览器中。