| Полиморфизм классов в PHP |
|
|
|
|
Полиморфизм (многоформенность) является следствием идеи наследования. В общих словах, полиморфность класса — это свойство базового класса использовать функции производных классов, даже если на момент определения еще неизвестно, какой именно класс будет включать его в качестве базового и, тем самым, становиться от него производным. Рассмотрим свойство полиморфности классов на основе следующего примера: <?php Используем следующие следующие команды: $a->Call(); // выводит "Test from A" Обратите внимание на последнюю строчку: вопреки ожиданиям, вызывается не функция Test() из класса A, а функция из класса B! Складывается впечатление, что Test() из B просто переопределила функцию Test() из A. Так оно на самом деле и есть. Функция, переопределяемая в производном классе, называется виртуальной. Механизм виртуальных функций позволяет, например, "подсовывать" функциям, ожидающим объект одного класса, объект другого, производного, класса. Еще один классический пример — класс, воплощающий собой свойства геометрической фигуры, и несколько производных от него классов — квадрат, круг, треугольник и т. д. А вот еще один практический пример, показывающий свойство класса - полиморфизм: <?php В рассмотренном примере функция base_funct() класса Base была перезаписана одноименной функцией класса Derivative. По материалам сайта: http://www.php.su/
|



