Sobes.tech
Назад к вопросам
Junior — Middle
90

Каким образом можно реализовать концепцию полиморфизма в объектно-ориентированном программировании?

Ответ от нейросети

sobes.tech AI

Полиморфизм в объектно-ориентированном программировании позволяет объектам разных классов реагировать на одинаковые сообщения (вызовы методов) по-разному. В PHP это достигается через наследование и переопределение методов.

Основные способы реализации полиморфизма:

  • Наследование и переопределение методов: базовый класс объявляет метод, а дочерние классы реализуют его по-своему.
  • Интерфейсы: разные классы реализуют один и тот же интерфейс с одинаковыми методами, но с разной логикой.

Пример:

interface Logger {
    public function log(string $message);
}

class FileLogger implements Logger {
    public function log(string $message) {
        // Запись в файл
        echo "Запись в файл: $message";
    }
}

class DatabaseLogger implements Logger {
    public function log(string $message) {
        // Запись в базу данных
        echo "Запись в БД: $message";
    }
}

function writeLog(Logger $logger, string $msg) {
    $logger->log($msg);
}

writeLog(new FileLogger(), "Тест");
writeLog(new DatabaseLogger(), "Тест");

Здесь функция writeLog работает с объектом типа Logger, не зная конкретной реализации, что и есть полиморфизм.