JavaScript - Наследование классов

В JavaScript наследование классов позволяет подклассу наследовать свойства и методы от суперкласса.
Это позволяет повторно использовать код и способствует иерархической структуре в объектно-ориентированном программировании.

✏️ Синтаксис

javascript
class SuperclassName {  
    // атрибуты и методы суперкласса  
}  

class SubclassName extends SuperclassName {  
    // атрибуты и методы подкласса  
}
  • Суперкласс определяется с использованием ключевого слова class, за которым следует имя суперкласса.
  • Подкласс определяется с использованием ключевого слова class, за которым следует имя подкласса.
  • Для установления отношения наследования используйте ключевое слово extends, за которым следует имя суперкласса.

📘 Пример

javascript
class Animal {  
    constructor(name) {  
        this.name = name;  
    }  

    speak() {  
        console.log("I'm", this.name);  
    }  
}  

class Dog extends Animal {  
    constructor(name, weight) {  
        super(name);  
        this.weight = weight;  
    }  

    getWeight() {  
        console.log("Weight:", this.weight);  
    }  
}  

class Cat extends Animal {  
    constructor(name, color) {  
        super(name);  
        this.color = color;  
    }  

    getColor() {  
        console.log("Color:", this.color);  
    }  
}  

const dog = new Dog("Snoopy", 20);  
dog.speak();  
dog.getWeight();  

const cat = new Cat("Kitty", "White");  
cat.speak();  
cat.getColor();

В приведенном выше коде у нас есть суперкласс Animal с конструктором и методом speak.
Классы Dog и Cat являются подклассами Animal и наследуют свойство name и метод speak.

У класса Dog есть дополнительное свойство weight и метод getWeight.
У класса Cat есть дополнительное свойство color и метод getColor.

Мы создаем экземпляры Dog и Cat и вызываем их соответствующие методы, чтобы продемонстрировать наследование классов в JavaScript.