Перегрузка и переопределение — это концепции объектно-ориентированного программирования, используемые в PHP (препроцессор гипертекста) для достижения полиморфизма. Они позволяют разработчикам создавать функции и методы с одинаковыми именами, но с разными параметрами или функциями. Вот объяснение перегрузки и переопределения в PHP, а также примеры кода:
- Перегрузка метода.
Перегрузка метода означает возможность определять в классе несколько методов с одинаковым именем, но разными параметрами. PHP не поддерживает перегрузку методов изначально, но ее можно смоделировать с помощью различных методов, таких как использование значений параметров по умолчанию или использование магического метода__call.
Пример:
class MathOperations {
public function add($num1, $num2) {
return $num1 + $num2;
}
public function addThreeNumbers($num1, $num2, $num3) {
return $num1 + $num2 + $num3;
}
}
$math = new MathOperations();
echo $math->add(2, 3); // Output: 5
echo $math->addThreeNumbers(2, 3, 4); // Output: 9
- Переопределение метода:
Переопределение метода происходит, когда дочерний класс определяет метод с тем же именем, что и метод в его родительском классе. Дочерний класс может предоставить собственную реализацию метода, которая переопределяет поведение, определенное в родительском классе.
Пример:
class Vehicle {
public function startEngine() {
echo "Engine started.";
}
}
class Car extends Vehicle {
public function startEngine() {
echo "Car engine started.";
}
}
$car = new Car();
$car->startEngine(); // Output: Car engine started.
В приведенном выше примере класс Carпереопределяет метод startEngine(), определенный в классе Vehicle, с помощью собственной реализации.