← Назад к вопросам

Какие принципы есть в ООП?

1.0 Junior🔥 211 комментариев
#PHP Core#ООП

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Какие принципы есть в ООП?

Объектно-ориентированное программирование базируется на четырех ключевых принципах, которые делают код более модульным, переиспользуемым и легким в поддержке.

1. Инкапсуляция (Encapsulation)

Принцип скрытия внутренней реализации объекта и предоставления только необходимого интерфейса.

class User {
    private string $password;
    private string $email;

    public function setPassword(string $password): void {
        if (strlen($password) < 8) {
            throw new InvalidArgumentException('Password too short');
        }
        $this->password = password_hash($password, PASSWORD_BCRYPT);
    }
}

Преимущества: контроль доступа, валидация данных, независимость реализации.

2. Наследование (Inheritance)

Механизм переиспользования кода через иерархию классов.

class Animal {
    protected string $name;
    public function speak() { return "Sound"; }
}

class Dog extends Animal {
    public function speak() { return "Woof!";
    }
}

Преимущества: переиспользование кода, типизация, полиморфизм.

3. Полиморфизм (Polymorphism)

Способность объектов разных классов отвечать на один вызов по-разному.

interface PaymentGateway {
    public function charge(float $amount): bool;
}

class StripeGateway implements PaymentGateway {
    public function charge(float $amount): bool { return true; }
}

Преимущества: гибкость, расширяемость, слабая связанность.

4. Абстракция (Abstraction)

Представление объекта упрощенной моделью, скрывающей сложность.

abstract class Database {
    abstract public function connect(): void;
}

class MySQL extends Database {
    public function connect(): void { }
}

Преимущества: упрощение, скрытие деталей, создание контрактов.

Итоговая таблица

ПринципСутьПример
ИнкапсуляцияСкрытие данныхprivate методы
НаследованиеПереиспользованиеextends
ПолиморфизмМногоформностьimplements
АбстракцияУпрощение сложностиabstract классы

Эти принципы работают вместе, образуя основу чистого и модульного кода.

Какие принципы есть в ООП? | PrepBro