super用于子类调用父类构造函数或方法,必须在派生类中使用:构造函数需先调super()再用this;实例方法用super.method();静态方法用super.staticMethod();不可在普通函数中使用。

在 JavaScript 中,super 关键字用于在子类中调用父类的构造函数或方法,必须在使用 this 之前调用 super()(在构造函数中),且只能在派生类(即用 extends 声明的类)中使用。
在构造函数中调用父类构造函数
子类构造函数中必须显式调用 super(),否则会报错 ReferenceError: Must call super constructor in derived class before accessing 'this'。调用 super() 相当于执行父类的 constructor,并初始化 this。
- 不传参:若父类构造函数不需要参数,可写
super() - 传参:需按父类构造函数签名传递对应参数,例如
super(name, age) -
super()必须出现在this之前,否则语法错误
在普通方法中调用父类同名方法
当子类重写了父类方法,但仍需复用父类逻辑时,可用 super.方法名() 显式调用父类实现。
当用户要求为 Java 代码添加注释、修改注释、审查注释、整理注释格式,或要求按照代码注释规范处理 Java 文件时,使用本技能。本技能用于统一生成和维护 Java 类注释模板、按 Git 对比 release 判断版本号、补充每行代码上方中文块注释、调整注释空行规则,并保持 Java 文件 UTF-8 无 BOM 编码。典型触发场景包括:补充类注释、更新 @version、检查 @author 来源、整理行尾注释、把注释放到代码上一行、检查注释是否符合规范、构建前检查 Java 注释风格。
- 语法为
super.methodName(...args),不是super.methodName(...args)(注意点号后直接接方法名) - 可在任意实例方法或静态方法中使用(静态方法中用
super.staticMethod()) - 支持传参、返回值、链式调用,行为与普通方法调用一致
在静态方法中调用父类静态方法
子类静态方法可通过 super 访问父类的静态成员,前提是父类定义了对应静态方法。
立即学习“Java免费学习笔记(深入)”;
- 写法是
super.staticMethodName(...args) - 不能在静态方法中访问
this或实例属性,super在这里指向父类本身(而非父类原型) - 若父类无该静态方法,运行时报
TypeError
常见错误和注意事项
super 不是对象,不能赋值或解构;它只在类的方法内部(包括构造函数、实例方法、静态方法)有效,在普通函数或箭头函数中无效。
- 在非类方法中使用
super→SyntaxError - 构造函数中漏写
super()→ReferenceError - 在
super()前访问this→ReferenceError - 试图用
super调用不存在的方法 →TypeError

















