JavaScript Inheritance

JavaScript Class Inheritance allows to create a new class that inherits properties and methods from an existing class. The new class is called a subclass, and the existing class is called a superclass. This tutorial will teach you how to use inheritance in JavaScript.

Declaring a Superclass (parent class)

To declare a superclass in JavaScript, you create a class using the class keyword. Here's an example of a simple superclass:

1class Animal { 2 constructor(name) { 3 this.name = name; 4 } 5 6 speak() { 7 console.log(`${this.name} makes a sound.`); 8 } 9}

In this example, a class Animal is declared with a constructor that takes a single parameter name and sets it as an object property. The class also has a method speak that logs a message to the console.

Declaring a Subclass (child class)

To declare a subclass in JavaScript, you use the extends keyword to inherit from a superclass. Here's an example of a subclass:

1class Dog extends Animal { 2 constructor(name, breed) { 3 super(name); 4 this.breed = breed; 5 } 6 7 bark() { 8 console.log(`${this.name} barks.`); 9 } 10}

In this example, a new class Dog is declared that extends the Animal class. The Dog class has a constructor that takes two parameters name and breed, and sets them as object properties. The super keyword is used to call the constructor of the Animal class and set the name property. The Dog class also has a new method bark that logs a message to the console.

Creating an Object from a Subclass

To create an object from a subclass, you use the same new keyword as with a regular class. Here's an example:

1let dog = new Dog("Buddy", "Labrador"); 2dog.speak(); // Buddy makes a sound. 3dog.bark(); // Buddy barks.

In this example, a new object dog is created from the Dog class, and its name and breed properties are set to "Buddy" and "Labrador", respectively. The object can access the speak method inherited from the Animal class and the bark method defined in the Dog class.

Overriding Methods

A subclass can override a method inherited from a superclass by declaring a new method with the same name. Here's an example extending child class(act as parent to next child) to another child class:

1class Dog2 extends Dog { 2 bark() { 3 console.log(`${this.name} barks loudly.`); 4 } 5} 6 7let dog2 = new Dog2("Rufus", "Jack Russell Terrier"); 8dog2.speak(); // Rufus makes a sound. 9dog2.bark(); // Rufus barks loudly.

In this example, a new class Dog2 is declared that extends the Dog class. The Dog2 class overrides the bark method from the Dog class and provides a new implementation that logs a different message to the console