 
   
                                                Приклад використання методів у класах 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.