Course

Overriding methods in JavaScript

Overriding a method replaces the code of the method in the superclass with that of the subclass.

Call the receiveDamage() method from the Wizard class to see what happens to the health property.

jsx
class Human { constructor(weapon) { this.weapon = weapon; this.health = 100; } receiveDamage() { this.health = this.health - 10; } } class Wizard extends Human { receiveDamage() { this.health = this.health - 5; } } const wizard = new Wizard("staff"); console.log(wizard.health); wizard.receiveDamage(); console.log(wizard.health);

To override a method, we give it the same name and parameters as the method in the superclass.

We can override receiveDamage() from the superclass by coding the same method in the subclass.

jsx
class Human { constructor(weapon) { this.weapon = weapon; this.health = 100; } receiveDamage() { this.health = this.health - 10; } } class Wizard extends Human { receiveDamage() { this.health = this.health - 5; } } const wizard = new Wizard("staff"); console.log(wizard.health); wizard.receiveDamage(); console.log(wizard.health);