DEV Community

Cover image for 4-JS OOP: Class Inheritance
Hasan Zohdy
Hasan Zohdy

Posted on

3 1

4-JS OOP: Class Inheritance

Introduction

Inheritance is a way to create a new class from an existing class, the new class is called child class and the existing class is called parent class.

Types of Inheritance

There are 3 types of inheritance:

  • Single Inheritance
  • Multiple Inheritance
  • Hierarchical Inheritance

Single Inheritance

Single inheritance is the simplest form of inheritance, it is a way to create a new class from an existing class, the new class is called child class and the existing class is called parent class.

Let's see an example in JS:

class Human {
    name;
    age;
    gender;
}

class Male extends Human {
    beard;
}

class Female extends Human {
    hair;
}
Enter fullscreen mode Exit fullscreen mode

Here we have 3 classes, the Human class is the parent class, and the Male and Female classes are the child classes.

Each child has added a new attribute to the parent class, so in overall the Male class will act as if it has the attributes name, age, gender, and beard, and the Female class will act as if it has the attributes name, age, gender, and hair.

We can actually override the attributes of the parent class in the child class, for example:

class Human {
    name;
    age;
    gender;
}

class Male extends Human {
    beard;
    gender = 'male';
}

class Female extends Human {
    hair;
    gender = 'female';
}
Enter fullscreen mode Exit fullscreen mode

Here we have overridden the gender attribute of the parent class in the child classes as we already know that the Male class is a Human and the Female class is a Human, so we don't need to define the gender attribute in the child classes because each child knows its gender (we can doubt that nowadays 😂).

Multiple Inheritance

Multiple inheritance is a way to create a new class from multiple existing classes, the new class is called child class and the existing classes are called parent classes.

This is actually not supported in JS, but we can achieve it using mixins, which we'll learn about it later.

Hierarchical Inheritance

Hierarchical inheritance is a way to create multiple child classes from a single parent class.

For example, the GrandChild class extends Dad class, and Dad class extends GrandPa class, so the GrandChild class is a Dad and a GrandPa.

class GrandPa {
    name;
    age;
}

class Dad extends GrandPa {
    beard;
}

class GrandChild extends Dad {
    hair;
}
Enter fullscreen mode Exit fullscreen mode

In the above example, the GrandChild class is a Dad and a GrandPa.

In that sense, the GrandChild class inherits from both the Dad class and the GrandPa class.

Let's see another practical example.

We can have a Person class, that Person class can be a Teacher or an Employee or a Student, so we can create a Teacher class that extends the Person class, and we can create an Employee class that extends the Person class, and we can create a Student class that extends the Person class.

class Person {
    name;
    age;
}

class Teacher extends Person {
    subject;
}

class Employee extends Person {
    salary;
}

class Student extends Person {
    grade;
}
Enter fullscreen mode Exit fullscreen mode

In the above example, the Teacher class is a Person, the Employee class is a Person, and the Student class is a Person.

We can actually make more hierarchy structure, for example, we can extend the Employee class with a child class called Manager as any Employee is a Person and any Manager is an Employee and a Person.

class Person {
    name;
    age;
}

class Employee extends Person {
    salary;
}

class Manager extends Employee {
    department;
}
Enter fullscreen mode Exit fullscreen mode

🎨 Conclusion

Inheritance is a way to create a new class from an existing class, the new class is called child class and the existing class is called parent class.

This is one of the most important concepts in OOP, and it's very useful in real-world applications, you can see that clearly in the Node Js Course.

☕♨️ Buy me a Coffee ♨️☕

If you enjoy my articles and see it useful to you, you may buy me a coffee, it will help me to keep going and keep creating more content.

😍 Join our community

Join our community on Discord to get help and support.

📚 Bonus Content 📚

You may have a look at these articles, it will definitely boost your knowledge and productivity.

General Topics

Packages & Libraries

React Js Packages

Courses (Articles)

SurveyJS custom survey software

Simplify data collection in your JS app with a fully integrated form management platform. Includes support for custom question types, skip logic, integrated CCS editor, PDF export, real-time analytics & more. Integrates with any backend system, giving you full control over your data and no user limits.

Learn more

Top comments (0)

SurveyJS custom survey software

JavaScript Form Builder UI Component

Generate dynamic JSON-driven forms directly in your JavaScript app (Angular, React, Vue.js, jQuery) with a fully customizable drag-and-drop form builder. Easily integrate with any backend system and retain full ownership over your data, with no user or form submission limits.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay