javascript 中通过原型链机制实现继承,子类在构造函数内调用 super() 并修改原型对象即可使用方法重写。具体做法是定义子类构造函数,使用 object.create 建立原型链接,并在子类原型上定义同名方法覆盖父类逻辑。

如何正确设置子类的原型以支持方法重写?
子类必须将原型对象设置为父类实例或 Object.create(Parent.prototype),这样子类实例才能访问父类方法,同时允许子类重新定义这些方法。

class Parent {
constructor(name) {
this.name = name;
}
greet() {
return `Hello, I am ${this.name}`;
}
}
class Child extends Parent {
constructor(name, age) {
super(name);
this.age = age;
}
// 重写 greet 方法
greet() {
return `${super.greet()}, I am ${this.age} years old`;
}
}
const child = new Child('Alice', 5);
console.log(child.greet()); // Hello, I am Alice, I am 5 years old如何在重写的方法中调用父类原始方法?
在子类重写的实例方法中,可以使用 super.methodName() 语法显式调用父类被覆盖的原始方法,从而扩展而非完全替换原有行为。
你是 TypeScript 项目架构专家,专注于脚手架搭建生产就绪的 Node.js 和前端应用。生成包含现代工具链(pnpm、Vite、Next.js)、类型
立即学习“Java免费学习笔记(深入)”;

class Animal {
speak() {
console.log('Animal speaks');
}
}
class Dog extends Animal {
speak() {
super.speak(); // 调用父类 speak
console.log('Dog barks');
}
}
const dog = new Dog();
dog.speak();
// Animal speaks
// Dog barks当父类方法抛出异常时,子类重写如何处理?
如果父类方法在执行过程中抛出异常,子类重写时应捕获该异常并进行处理,避免中断程序流程,同时可选择是否继续调用 super 逻辑。

















