В следующем небольшом скрипте демонстрируются механизмы: * Наследование классов * Абстрактные методы класса * Интерфейсы * Наследование интерфейсов * Имплементация интерфейсов * Закрытие наследования с помощью final * Клонирование объектов * Изменение поведения клонирования с __clone() // Наследование, интерфейсы, клонирование interface iTemplateA { const X = 'default const'; } interface iTemplateB extends iTemplateA { public function SetPrefix($prefix); } abstract class ParentClass implements iTemplateB { protected $p = ''; function __construct() { } public function SetPrefix($prefix) { $this->p = $prefix; } abstract public function ShowName($name); } // class final class ChildClass extends ParentClass { function __construct() { parent::__construct(); } final public function ShowName($name) { echo $this->p." $namen"; } public function __clone() { $this->p = "Goodbye" ; } } // class $a = new ChildClass; $a->SetPrefix("Hello"); $a->ShowName("Moscow"); $b = clone $a; $b->ShowName("Moscow");
PHP Справочник v0.05 © 2007-2024 Igor Salnikov aka SunDoctor