JavaScript的继承中是可以重写父类的方法的。当子类继承父类后,子类可以通过定义与父类同名的方法来重写父类的方法,从而改变其行为。
以下是一个简单的示例:
class Animal {sound() {console.log('Animal makes a sound');}
}class Dog extends Animal {sound() {console.log('Dog barks');}
}const dog = new Dog();
dog.sound(); // 输出:'Dog barks'
在上面的示例中,Animal类有一个sound方法,它打印出"Animal makes a sound"。然后,Dog类继承自Animal类,并重写了sound方法,改为打印出"Dog barks"。当我们创建一个Dog类的实例并调用sound方法时,它会执行子类中重写的方法。
子类重写父类的方法是一种常见的行为,它允许我们根据子类的特定需求改变方法的实现。但需要注意,在重写方法时,子类可以调用父类的方法,使用super
关键字,以保留和扩展父类的功能。例如:
class Dog extends Animal {sound() {super.sound(); // 调用父类的sound方法console.log('Dog barks');}
}const dog = new Dog();
dog.sound();
// 输出:
// 'Animal makes a sound'
// 'Dog barks'
在上面的示例中,子类Dog的sound方法首先调用了父类Animal的sound方法,然后再在此基础上添加了额外的行为。