Рассмотрим код ниже. У нас есть класс-родитель Car. В нем описан метод printWheels. Есть второй класс Toyota, который наследует класс Car.
Что будет, если в классе Toyota мы опишем метод printWheels, такой же как у родителя? Это будет называться перегрузкой методов.
Т.е. метод в классе-наследнике закроет родительский метод. Теперь при вызове printWheels будет вызываться метод класса-наследника.
[php] class Car { public $numWheels = 4; function printWheels() { echo $this->numWheels; } } class Toyota extends Car { public $country = 'Japan'; function printCountry() { echo $this->country; } } function printWheels() { echo "Перегруженный метод printWheels() "; } } $myCar = new Toyota(); $myCar->printWheels(); [/php]
Parent
А если мы хотим, чтобы вызывались и перегруженный метод printWheels и такой же метод родителя. Для этого используем конструкцию parent:
[php] class Car { public $numWheels = 4; function printWheels() { echo $this->numWheels; }} class Toyota extends Car { public $country = 'Japan'; function printWheels() { echo "Перегруженный метод printWheels() "; parent:: printWheels(); //использование parent }} $myCar = new Toyota(); $myCar->printWheels(); [/php]
Конструкция parent::printWheels () позволяет обратиться к родительскому методу.