java子类增强父类功能的核心是在复用基础上叠加新行为,需协同继承、重写、super调用与新增成员;通过@override重写方法并在其中调用super保留基础逻辑,中间插入专属处理,结尾补充后置动作;新增字段与方法应封装并分层初始化;父类需预留protected抽象方法、钩子及字段等扩展点。

Java 中子类对父类功能的增强,核心不是替换,而是“在复用基础上叠加新行为”。关键在于合理使用 继承关系 + 方法重写 + super 调用 + 新增成员 四个要素协同工作。
用 @Override 重写方法,并通过 super 复用父逻辑
这是最常用、最自然的增强方式。子类不从头写方法,而是在原有流程中插入定制步骤:
- 在重写方法开头调用
super.methodName(),保留基础校验、初始化或通用日志 - 在中间添加子类专属处理,比如参数转换、渠道标记、权限检查
- 在结尾补充后置动作,如异步通知、缓存更新、埋点上报
例如:Dog.eat() 先执行 super.eat()(输出“正在进食”),再追加 chewBone();既延续语义,又体现特化。
你接手一个需求时,是不是经常这样:"改一个小字段 → 结果把不相关的代码也改了"、"需求说得很模糊 → 做着做着发现跑偏了"、"数据库加个字段 → 上线才发现漏了数据兼容"、"做了个新功能 → 一个月后自己都忘了当时怎么设计的"、"写到一半被中断 → 再回来不知道从哪继续";这个 Skill 就是专门解决这些问题的。 它会自动探测你的项目环境(JDK、Spring Boot、ORM、数据库、前端框架),记在
在子类中新增专属字段和方法
父类只管共性,子类专注差异。新增内容完全独立,不影响父类和其他子类:
- 添加特有字段:如
Student类新增studentId、grade - 添加特有方法:如
Payment的子类WechatPayment添加generatePrepayId() - 字段建议用
private封装,配套提供public的 getter/setter,保持封装性
在构造器中分层初始化:先 super,再本类
对象创建时,父类状态必须先就绪,子类数据才能安全设置:
- 子类构造器第一行必须显式或隐式调用
super(...) - 若父类只有带参构造器,子类必须写
super(参数),否则编译失败 - 初始化顺序固定:父类字段 → 父类构造器 → 子类字段 → 子类构造器,不可颠倒
依赖父类预留的扩展点(设计层面的关键)
真正可持续的增强,离不开父类主动配合。好的父类会为子类留出“插槽”:
- 把可变逻辑提取为
protected abstract方法(如doProcess()),由子类实现 - 提供
protected钩子方法(如beforeSave()、afterValidate()),默认空实现 - 关键字段用
protected而非private,方便子类直接访问或组合 - 避免在父类构造器中调用
public/protected方法——防止子类重写后触发未初始化状态
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










