Какие основные принципы объектно-ориентированного программирования (ООП) ты знаешь?
Классы
Основные принципы ООП — инкапсуляция, наследование, полиморфизм и абстракция. Они описывают, как организовать код вокруг объектов, объединяющих данные и поведение.
Четыре принципа
Инкапсуляция
Сокрытие внутреннего состояния и предоставление доступа через методы. В JS — приватные поля #:
class Account {
#balance = 0;
deposit(sum) { this.#balance += sum; }
get balance() { return this.#balance; }
}Наследование
Класс получает свойства и методы родителя:
class Animal { eat() {} }
class Dog extends Animal { bark() {} }Полиморфизm
Один интерфейс — разные реализации: переопределение методов в наследниках.
class Shape { area() {} }
class Circle extends Shape { area() { return Math.PI * this.r ** 2; } }Абстракция
Выделение существенного и сокрытие деталей реализации за понятным интерфейсом.
Особенность JS
ООП в JavaScript построено на прототипах; class — синтаксический сахар над ними.
Коротко для собеседования
Четыре принципа ООП: инкапсуляция (сокрытие состояния), наследование (переиспользование), полиморфизм (единый интерфейс, разные реализации), абстракция (сокрытие деталей). В JS реализуются через прототипы и class.