Back to questions
Junior — Middle
88
Каким образом можно реализовать концепцию полиморфизма в объектно-ориентированном программировании?
Answer from AI
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, не зная конкретной реализации, что и есть полиморфизм.