Inheritance is a way to create a new Class from an existing Class. The new Class inherits all the properties and methods from the existing Class. The new Class is called the child Class, and the existing Class is called the parent Class.

Example

class Roadmap {
  constructor(name, description, slug) {
    this.name = name;
    this.description = description;
    this.slug = slug;
  }
 
  getRoadmapUrl() {
    console.log(`https://roadmap.sh/${this.slug}`);
  }
}
 
class JavaScript extends Roadmap {
  constructor(name, description, slug) {
    super(name, description, slug);
  }
 
  greet() {
    console.log(`${this.name} - ${this.description}`);
  }
}
 
const js = new JavaScript(
  'JavaScript Roadmap',
  'Learn JavaScript',
  'javascript'
);
 
js.getRoadmapUrl(); // https://roadmap.sh/javascript
js.greet(); // JavaScript Roadmap - Learn JavaScript

In the above example, the JavaScript class inherits the getRoadmapUrl() method from the Roadmap class. This is because the JavaScript class extends the Roadmap class using the extends keyword. In the JavaScript class, the getRoadmapUrl() method is not found, so JavaScript looks up the prototype chain and finds the getRoadmapUrl() method in the Roadmap class.