🍆Class Inheritance

In JavaScript, class inheritance is a way for one class to inherit the properties and methods of another class. It is a way to create a new class that is a modified version of an existing class, without having to rewrite all of the code in the new class.

To create a class that inherits from another class, you use the extends keyword and specify the parent class. The new class is called the child class, and the class it inherits from is the parent class. Here is an example of class inheritance in JavaScript:

class Animal {
  constructor(name) {
    this._name = name;
  }
  
  get name() {
    return this._name;
  }
  
  set name(newName) {
    this._name = newName;
  }
  
  speak() {
    console.log(`${this.name} makes a noise.`);
  }
}

class Dog extends Animal {
  constructor(name, breed) {
    super(name);
    this._breed = breed;
  }
  
  get breed() {
    return this._breed;
  }
  
  set breed(newBreed) {
    this._breed = newBreed;
  }
  
  speak() {
    console.log(`${this.name} barks.`);
  }
}

const dog = new Dog("Fido", "Labrador");
console.log(dog.name); // "Fido"
console.log(dog.breed); // "Labrador"
dog.speak(); // "Fido barks."

In this example, we have a base Animal class with a name, speak method, and getters and setters for the name property. The Dog class extends the Animal class and adds a breed property and its own implementation of the speak method. The Dog class uses the super keyword to call the constructor of the parent class and pass along the name argument.

The Dog class inherits the name property and getters and setters from the Animal class, and it also has its own breed property and speak method. When we create an instance of the Dog class and call its speak method, it uses the speak method that was defined in the Dog class, rather than the one defined in the Animal class.

Last updated