extends 是 JavaScript 中实现类继承的关键字,子类通过它继承父类属性和方法,并须在 constructor 中首行调用 super() 初始化 this;可重写方法并用 super.调用父类逻辑,静态方法亦可被继承和调用。

extends 是 JavaScript 中用于实现类继承的关键字,它让子类可以复用父类的属性和方法,并支持重写或扩展行为。核心在于:子类通过 extends 声明继承关系,再在构造函数中调用 super() 初始化父类实例。
基本语法与继承结构
使用 extends 时,子类必须显式调用 super()(通常在 constructor 第一行),否则会报错。这是因为子类没有自己的 this 绑定,需先由父类构造函数完成初始化。
- 父类定义通用逻辑(如
Person的姓名、年龄) - 子类继承后可添加特有属性(如
Student的学号)或重写方法(如sayHello) - 子类可通过
super.方法名()调用父类同名方法
正确调用 super() 的时机和作用
super() 不仅是语法要求,更是确保继承链正常工作的关键步骤。它负责将父类的实例属性挂载到当前 this 上。
- 必须在子类
constructor中调用,且在访问this之前 - 若父类构造函数需要参数,
super()必须传入对应参数 - 不调用
super()或调用位置错误,会触发ReferenceError: Must call super constructor
方法重写与 super 方法调用
子类可以定义与父类同名的方法来覆盖行为,同时用 super.方法名() 保留父类逻辑。
立即学习“Java免费学习笔记(深入)”;
- 重写构造函数时,必须先调用
super(),再操作this - 重写普通方法时,可选择是否调用
super.方法名()来复用父类逻辑 - 例如:子类
sayHello()先执行super.sayHello(),再追加个性化内容
静态方法与继承的关系
静态方法也会被继承,子类可通过 super 在静态方法中调用父类静态方法,但不能通过实例访问静态方法。
- 父类的
static create()可被子类直接调用:Student.create() - 子类静态方法中可用
super.staticMethod()调用父类静态方法 - 实例对象无法访问静态方法,只能通过类名调用


















