当前位置:首页>排行榜>接口和抽象类怎么选?再也不会混淆

接口和抽象类怎么选?再也不会混淆

  • 更新时间 2026-10-25 11:58:47
接口和抽象类怎么选?再也不会混淆

接口和抽象类怎么选?再也不会混淆

刚学 Java 那会儿,接口和抽象类背得我头大。直到我把它们搬进后厨,才彻底想明白。

接口就是贴在墙上的岗位职责说明书。它只写“必须会什么”,不关心你是谁。一个川菜厨师能同时会颠锅、会雕花,甚至后厨帮工也能单独实现“会雕花”。接口认的是能力,不是身份。

抽象类则是一份半成品的后厨模板。只要是厨师,天生就有名字和工龄,还得遵守打卡流程。但做菜口味不一样,所以把具体的 cook() 留给子类自己填。你只能认一个师傅,接着把最后一步做完。

JDK8 之后接口能写 default 方法,很多人懵了:这不就和抽象类一样了吗?其实 default 只是个通用操作小贴士,谁都能看。它不能访问实例字段,也不保存对象状态。只要逻辑需要实例字段和构造器,抽象类就依然不可替代。

实际开发里有个常见组合:接口定义契约,抽象类提供默认实现。比如收款标准流程,先验钞再收钱,具体走现金还是扫码让子类定。

不过有两个坑得避开。一是别拿接口当常量仓库,会造成隐式依赖。二是千万别在抽象类构造器里调用可重写方法,子类的字段还没初始化呢,读到的全是默认值。

原文接口和抽象类别死记!搞懂使用场景,再也不会混淆
收录于Java 后端基础合集
作者提示: 个人观点,仅供参考
四川,19分钟前,

随机文章