node.js 中继承机制使用 extends 关键字让子类继承父类,通过 super() 调用父类构造函数初始化属性,并在子类中重写方法实现多态。

如何定义一个包含属性和方法的基类
定义基类时只需声明 class 并编写构造函数和方法即可,无需特殊配置。在构造函数中通过 this 绑定实例属性,其他方法直接挂载在原型上供实例调用。

class Animal {
constructor(name) {
this.name = name;
}
speak() {
console.log(`${this.name} makes a noise.`);
}
}上述代码创建了一个名为 Animal 的基类,它接受一个 name 参数并将其存储为实例属性。调用 speak 方法时会输出该动物的名称和默认行为。
立即学习“Java免费学习笔记(深入)”;
子类如何继承并重写父类方法
子类通过 extends 关键字继承父类,并在构造函数中使用 super() 传递参数给父类构造函数以完成初始化。若需改变行为,可直接在子类中定义同名方法进行覆盖。

class Dog extends Animal {
constructor(name, breed) {
super(name); // 调用父类构造函数
this.breed = breed;
}
speak() {
console.log(`${this.name} barks.`);
}
}
const dog = new Dog('Rex', 'German Shepherd');
dog.speak(); // 输出: Rex barks.这段代码展示了 Dog 类如何继承 Animal 类。通过 super(name) 确保父类的 name 属性被正确设置,同时新增 breed 属性。重写的 speak 方法覆盖了父类逻辑,实现了特定于狗的行为。
基于程序中某个输入、条件或结果的具体问题
当子类未调用 super() 时,JavaScript 引擎会抛出 ReferenceError,因为子类的 this 上下文尚未初始化。这是 Node.js 中继承机制的一个关键约束条件。


















