Что такое полиморфизм? Как реализуется?

Ответ

Полиморфизм - способность объектов разных классов обрабатывать одно и то же сообщение по-своему:

interface NotificationChannel {
    public function send(string $message): void;
}

class EmailChannel implements NotificationChannel {
    public function send(string $message): void {
        mail($this->to, 'Notification', $message);
    }
}

class SlackChannel implements NotificationChannel {
    public function send(string $message): void {
        $this->api->post($this->webhook, $message);
    }
}

// Полиморфный вызов - код не знает конкретный тип
function notify(NotificationChannel $channel, string $msg): void {
    $channel->send($msg); // разное поведение
}

Реализуется через интерфейсы (наиболее правильно) и наследование с переопределением методов.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.