请解释接口和抽象类的区别,以及在什么场景下你会选择使用抽象类而不是接口?
考察说明
考察面向对象设计中对接口与抽象类的理解、适用场景辨析及设计取舍
回答思路
- 清晰说明语法层面的区别:抽象类可含字段、构造器、具体方法,接口一般只定义抽象方法(现代语言可含默认方法)
- 说明语义用途差异:接口用于定义能力契约和多实现,抽象类用于代码复用和模板方法
- 给出基于场景的选择理由,如多个无关类共享行为选接口、需要共享状态或通用逻辑选抽象类
- 能结合具体设计案例说明判断依据
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。