extends
extends
используется для создания нового класса на основе уже существующего класса. Новый класс наследует все свойства и методы родительского класса. Например, если у нас есть класс Person
с методом getName()
, мы можем создать новый класс Employee
, который будет наследовать метод getName()
из класса Person
:
class Person {
protected $name;
public function getName() {
return $this->name; // возвращает имя человека
}
}
class Employee extends Person {
protected $salary;
public function getSalary() {
return $this->salary; // возвращает зарплату сотрудника
}
}
В этом примере класс Employee
наследует свойство $name
и метод getName()
из класса Person
.
parent
parent
используется для обращения к родительскому классу из дочернего класса. Это позволяет переопределить методы родительского класса или вызвать родительский метод в дочернем классе. Например, если у нас есть класс Person
с методом getName()
, мы можем переопределить этот метод в классе Employee
и добавить к нему дополнительный функционал:
class Person {
protected $name;
public function getName() {
return $this->name;
}
}
class Employee extends Person {
protected $salary;
public function getName() {
return parent::getName() . ' (Employee)'; // возвращает имя сотрудника
}
public function getSalary() {
return $this->salary; // возвращает зарплату сотрудника
}
}
В этом примере метод getName()
класса Employee
переопределяет метод getName()
класса Person
, но также добавляет к имени дополнительную информацию о том, что это сотрудник.
Заключение
Использование наследования в PHP с помощью ключевых слов extends
и parent
позволяет создавать более эффективный и модульный код. Оно также позволяет избежать дублирования кода и повторного использования уже написанного кода. При использовании наследования необходимо следить за тем, чтобы не было циклических зависимостей между классами и чтобы не было переопределения слишком многих методов и свойств, что может привести к сложностям в поддержке кода.