Комментарии

Расширение классов и наследование
( 0 Голосов )

Наследование является основополагающим принципом ООП. Оно позволяет создать новый класс в качестве подкласса, производного от другого (родительского) класса, используя ключевое слово extends. Обратимся к следующему примеру:

class JDocumentHTML extends JDocument

В данном примере создается подкласс JDocumentHTML, являющийся производным от класса JDocument. Таким образом, класс JDocumentHTML автоматически наследует все поля из своего родительского класса JDocument. Так, если требуется создать подкласс, аналогичный родительскому классу, но определить в нем только один новый метод, то достаточно лишь написать код этого метода, а все остальные методы будут доступны из родительского класса. Это все равно, что скопировать и вставить все методы из родительского класса в производный от него класс, но при этом не придется сопровождать обе копии кода.

Например, подкласс JSite является производным от класса JApplication, а следовательно, он наследует все методы из своего родительского класса. Так, в классе JApplication имеется метод getlnstance (). Если проанализировать исходный код класса JSite, объявляемого в файле includes/application.php, то в нем не обнаружится метод getlnstance (). Тем не менее этот метод можно вызывать для объекта класса JSite. В этом случае интерпретатор языка РНР найдет метод getlnstance () в родительском классе.

В Joomla имеется немало примеров наследования за счет расширения одних классов другими. Кроме того, одни подклассы могут быть производными от других подклассов. Например, класс JApplication является производным от класса JObject. Следовательно, у класса JSite имеется родительский класс JApplication и прародительский класс JObject. Наследование классов может быть произвольной глубины.


Понравился материал? Пригодилась информация? Плюсани в социалки!


 
Похожие новости