Наслідування


Наслідування корисно використовувати, коли ви розширюєте клас, дочірній клас успадковує всі публічні (public) і захищені (protected) методи з батьківського класу. Ці методи матимуть вихідну функціональність до тих пір, поки не будуть перевизначені.

Такий підхід корисний для абстрагування функціональності. Дозволяє реалізувати додаткову функціональність в схожих об’єктах без необхідності реалізовувати всю загальну функціональність.

Щоб створити наслідування від іншого класу потрібно використовувати оператор extends

Приклад наслідування:

<?php
class FirstClass {
     public $var1 = "value1";

      protected function func1() {
     }

     public function func2() {
     }
}

class SecondClass extends FirstClass {
     public $var2 = "value2";
}

$fc = new FirstClass();
$sc = new SecondClass();

echo $fc->var1; // value1
echo $sc->var1; // value1
$sc->func2(); // работает
echo $sc->var2; // value2
?>

Якщо ми спробуємо викликати метод $sc ->func1(), то отримаємо помилку, через те, що метод func1 визначений в батьківському класі як protected, він не може бути викликаний зовні.

<?php
$sc->func1(); // не працює, метод захищений (protected)
?>