在JavaScript中,方法覆盖(Method Overriding)是指在子类中重新定义父类中已有的方法。这是一种常见的面向对象编程(OOP)概念,允许子类提供特定于其自身实现的方法版本,而不仅仅是继承父类的实现。
当创建一个子类时,可以继承父类的属性和方法。如果子类需要修改或扩展父类的某个方法,可以在子类中重新定义该方法。这就是方法覆盖。
方法覆盖通常分为两种类型:
class Animal {
speak() {
console.log("Animal makes a sound");
}
}
class Dog extends Animal {
// 完全覆盖父类的speak方法
speak() {
console.log("Dog barks");
}
}
class Cat extends Animal {
// 部分覆盖父类的speak方法
speak() {
super.speak(); // 调用父类的speak方法
console.log("Cat meows");
}
}
const dog = new Dog();
dog.speak(); // 输出: Dog barks
const cat = new Cat();
cat.speak();
// 输出:
// Animal makes a sound
// Cat meows
super
关键字:如果在子类中覆盖父类方法时需要调用父类的方法,必须使用super
关键字。否则,父类的方法将不会被执行。super.methodName()
来调用父类的方法。通过理解这些基础概念和注意事项,可以有效地使用方法覆盖来实现更灵活和可维护的代码。
领取专属 10元无门槛券
手把手带您无忧上云