| Наследование классов в PHP |
|
|
|
|
Наследование - это не просто создание точной копии класса, а расширение уже существующего класса, чтобы потомок мог выполнять какие-нибудь новые, характерные только ему функции. Итак, пусть у нас есть некоторый класс A с определенными свойствами и методами. Но то, что этот класс делает, нас не совсем устраивает — например, пусть он выполняет большинство функций, по сути нам необходимых, но не реализует некоторых других. Зададимся целью создать новый класс B, как бы "расширяющий" возможности класса A, добавляющий ему несколько новых свойств и методов. Сделать это можно двумя принципиально различными способами. Первый выглядит примерно так: class A { Поясним: в этой реализации объект класса B содержит в своем составе подобъект класса A в качестве свойства. Это свойство — лишь "частичка" объекта класса B, не более того. Подобъект не "знает", что он в действительности не самостоятелен, а содержится в классе B, поэтому не может предпринимать никаких действий, специфичных для этого класса. Итак, мы имеем некоторые проблемы: 1. Мы не видим явно, что класс B лишь расширяет возможности A, а не является отдельной сущностью; Теперь на практике рассмотрим, что же представляет собой наследование (или расширение возможностей) классов: class B extends A { Ключевое слово extends говорит о том, что создаваемый класс является лишь "расширением" класса A, и не более того. То есть B содержит те же самые свойства и методы, что и A, но, помимо них и еще некоторые дополнительные, "свои". Итак, мы видим, что, действительно, класс B является воплощением идеи "расширение функциональности Немного о терминологии: родительский класс A принято называть базовым классом, а класс дочерний класс B — производным от A. Иногда базовый класс также называют суперклассом, а производный — подкласcом. Рассмотрим еще один пример на PHP: <?php Дочерний класс (подкласс) Child наследует все методы и свойства суперкласса Parent. По материалам сайта: http://www.php.su/
|



