PHP 5 поддерживает определение абстрактных классов и методов.
Создавать экземпляр класса, который был объявлен абстрактным, нельзя.
Класс, в котором объявлен хотя бы один абстрактный метод,
должен также быть объявлен абстрактным. Методы, объявленные
как абстрактные, несут, по существу, лишь описательный смысл
и не могут включать какой-либо функционал.
Пример 19-17. Пример абстрактного класса
<?php
abstract class AbstractClass {
/* Данный метод должен быть определён в дочернем классе */ abstract protected function getValue();
/* Общий метод */ public function print() { print $this->getValue(); }
}
class ConcreteClass1 extends AbstractClass {
protected function getValue() { return "ConcreteClass1"; }
}
class ConcreteClass2 extends AbstractClass {
protected function getValue() { return "ConcreteClass2"; }
}
$class1 = new ConcreteClass1; $class1->print();
$class2 = new ConcreteClass2; $class2->print(); ?>
|
|
Код, предназначенный для прежних версий PHP, должен работать
без изменений, если в нём отсутствуют классы или функции,
именованные "abstract".