知乎面试题更新 2026-08-05

请解释接口和抽象类的区别,以及在什么场景下你会选择使用抽象类而不是接口?

知乎前端/移动开发互联网/IT技术原理方案权衡Java

考察说明

考察面向对象设计中对接口与抽象类的理解、适用场景辨析及设计取舍

回答思路

  1. 清晰说明语法层面的区别:抽象类可含字段、构造器、具体方法,接口一般只定义抽象方法(现代语言可含默认方法)
  2. 说明语义用途差异:接口用于定义能力契约和多实现,抽象类用于代码复用和模板方法
  3. 给出基于场景的选择理由,如多个无关类共享行为选接口、需要共享状态或通用逻辑选抽象类
  4. 能结合具体设计案例说明判断依据
本题已收录答题指导

本题附完整参考答案与评分标准

登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。