在JavaScript中,重写基类(父类)的方法是通过继承来实现的。当你在子类中定义了一个与父类同名的方法时,子类的方法就会覆盖父类的方法。这种方式被称为方法的重写或覆盖。
以下是一个简单的示例代码,展示了如何在JavaScript中重写基类方法:
// 定义一个基类(父类)
class Animal {
constructor(name) {
this.name = name;
}
// 基类中的方法
speak() {
console.log(`${this.name} 发出声音`);
}
}
// 定义一个子类,并继承基类
class Dog extends Animal {
constructor(name, breed) {
super(name); // 调用基类的构造函数
this.breed = breed;
}
// 重写基类中的方法
speak() {
console.log(`${this.name} 汪汪叫`);
}
}
// 创建一个Dog实例
const myDog = new Dog('Buddy', 'Golden Retriever');
// 调用重写后的方法
myDog.speak(); // 输出:Buddy 汪汪叫
在这个例子中,Animal
是基类,它有一个 speak
方法。Dog
是继承自 Animal
的子类,它重写了 speak
方法,以提供更具体的实现。当我们创建一个 Dog
实例并调用其 speak
方法时,将执行子类中的版本,而不是基类中的版本。
重写基类方法的优势:
应用场景:
如果你遇到了问题,比如子类的方法没有正确重写基类的方法,可能的原因包括:
super
关键字调用基类的构造函数。解决方法:
extends
关键字来继承基类,并在构造函数中使用了 super
关键字来调用基类的构造函数。领取专属 10元无门槛券
手把手带您无忧上云