java子类扩展父类功能的核心是“复用+增量添加+行为定制”:继承非私有成员直接复用;新增字段和方法实现专属功能;重写方法定制逻辑;合理使用super调用父类成员。

Java 中子类扩展父类功能,核心在于继承基础上的“复用 + 增量添加 + 行为定制”,不是简单复制,而是有层次、可维护地增强能力。
继承非私有成员,直接复用基础能力
子类通过 extends 自动获得父类的 public、protected 和包访问权限(default)的字段与方法,无需重写即可调用。
- 例如父类
Vehicle有start()方法,子类Car继承后可直接调用car.start() - 父类中声明为 protected String brand,子类可直接读写该字段,用于自身逻辑
- 注意:private 成员不可继承,构造器也不被继承,需通过
super(...)显式调用
添加新字段和方法,实现专属功能
子类可在自身定义独有的属性和行为,这是最直观的扩展方式。
- 如
Student extends Person新增studentId字段和study()方法 - 新增方法可完全独立,也可组合使用继承来的成员,例如:
System.out.println(name + " 正在学习,学号:" + studentId); - 避免在子类中重新定义与父类同名字段(字段遮蔽),易引发逻辑混乱;如需区分,应使用 getter/setter 或 protected 方法封装
重写(Override)父类方法,定制行为逻辑
当父类方法不满足子类语义时,用 @Override 重新定义,实现行为增强或调整。
- 重写必须保持方法签名一致(名称、参数列表、返回类型兼容)
- 推荐在重写中用
super.methodName()复用父类逻辑,再追加子类特有处理,比如先打印通用介绍,再补充专业信息 - 访问权限不能比父类更严格(如父类是
protected,子类不能改为private),但可更宽松(如改为public) - 务必加
@Override注解——拼错方法名(如hashcode())时编译器会立即报错,避免“假重写”
合理使用 super,精准控制调用边界
super 是子类与父类协作的关键桥梁,用于明确访问父类版本。
- 在构造器首行用
super(...)初始化父类状态,尤其当父类无无参构造器时必须显式调用 - 在重写方法中用
super.方法名()调用原始实现,防止递归调用自身导致栈溢出 - 若子类遮蔽了父类字段(不推荐),可用
super.fieldName明确读取父类字段值 - 设计父类时,可预留 protected 钩子方法(如
onStart()),供子类选择性重写,提升扩展灵活性
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











