PassFront
  1. PassFront
  2. База знаний
  3. Объекты и прототипы

Что такое наследование?

Объекты и прототипы

Наследование — это механизм ООП, при котором один класс (или объект) получает свойства и методы другого, что позволяет переиспользовать код и строить иерархии.

В JavaScript через class

class Animal {
  constructor(name) { this.name = name; }
  eat() { return `${this.name} ест`; }
}

class Dog extends Animal {
  bark() { return 'Гав'; }
}

const dog = new Dog('Рекс');
dog.eat();  // унаследовано от Animal
dog.bark(); // своё
  • extends задаёт родителя.
  • super(...) вызывает конструктор родителя.
  • super.method() — метод родителя.

Через прототипы (под капотом)

class — сахар над прототипным наследованием: методы ищутся по цепочке прототипов до null.

Переопределение (полиморфизм)

Наследник может заменить метод родителя:

class Cat extends Animal {
  eat() { return `${super.eat()} рыбу`; }
}

Композиция против наследования

Часто предпочитают композицию (объект собирается из частей) — она гибче и не создаёт жёстких иерархий. Правило: «предпочитай композицию наследованию».

Коротко для собеседования

Наследование — получение свойств и методов родителя через extends/super; в JS реализовано прототипами (class — сахар). Позволяет переиспользовать код и переопределять методы (полиморфизм). Часто предпочитают композицию как более гибкую.

Другие вопросы раздела