Приклад використання методів у класах PHP та можливість їхньої перевизначення (кастомізації) сторонніми програмістами. Розглянемо клас Car
, який має методи startEngine, drive
та stopEngine.
<?php
class Car {
protected $make;
protected $model;
protected $engineStarted = false;
public function __construct($make, $model) {
$this->make = $make;
$this->model = $model;
}
public function startEngine() {
if (!$this->engineStarted) {
echo "Двигун запущено.
";
$this->engineStarted = true;
} else {
echo "Двигун вже запущено.
";
}
}
public function drive() {
if ($this->engineStarted) {
echo "Автомобіль рухається.
";
} else {
echo "Для того, щоб рухатися, спочатку потрібно запустити двигун.
";
}
}
public function stopEngine() {
if ($this->engineStarted) {
echo "Двигун зупинено.
";
$this->engineStarted = false;
} else {
echo "Двигун вже зупинено.
";
}
}
}
// Сторонній програміст може успадковувати клас Car та перевизначати методи за необхідності
class CustomCar extends Car {
public function startEngine() {
echo "Спеціальний метод для запуску двигуна.
";
parent::startEngine(); // Викликати батьківський метод
}
public function drive() {
echo "Спеціальний метод для руху.
";
parent::drive();
}
public function stopEngine() {
echo "Спеціальний метод для зупинки двигуна.
";
parent::stopEngine();
}
}
// Використання класу Car та CustomCar
$carInstance = new Car("Toyota", "Camry");
$carInstance->startEngine();
$carInstance->drive();
$carInstance->stopEngine();
echo "
";
$customCarInstance = new CustomCar("Tesla", "Model S");
$customCarInstance->startEngine(); // Викликається перевизначений метод
$customCarInstance->drive(); // Викликається перевизначений метод
$customCarInstance->stopEngine(); // Викликається перевизначений метод
У цьому прикладі клас Car
визначає методи для управління двигуном автомобіля, а клас CustomCar
успадковує Car
та перевизначає його методи. Коли ми створюємо об'єкт класу CustomCar
і викликаємо його методи, вони викликають відповідні перевизначені методи класу CustomCar
.
Автор: Рудюк С.А. 2023. K2 Cloud ERP.