PHP 5 для начинающих

Печать

Интерфейс объявляется с помощью синтаксиса, аналогичного объявлению класса, за исключением того, что вместо ключевого слова class используется слово interface. Как правило, интерфейс не имеет переменных экземпляра и в нем не описана реализация функций экземпляра.

Поскольку реализация не определена, такие функции объявляются как абстрактные (abstract). Ключевое слово abstract сообщает PHP, что любой класс, реализующий данный интерфейс, должен обеспечить реализацию соответствующих функций. Если в классе, реализующем интерфейс, не реализованы все абстрактные функции, то PHP-интерпретатор генерирует ошибку времени выполнения. Выборочная реализация некоторых абстрактных методов не допускается — необходимо реализовать все абстрактные методы.

Абстрактный метод — метод, для которого в интерфейсе не предусмотрена реализация. Если какой-либо метод класса объявлен как абстрактный, то сам класс также должен быть объявлен как абстрактный (в объявлении класса перед словом class должно присутствовать ключевое слово abstract). Невозможно создать объект самого абстрактного класса ------ абстрактный класс должен иметь подклассы, которые обеспечивают конкретную реализацию абстрактных методов. Обратите внимание, что объявления абстрактных методов не содержат фигурных скобок и заканчиваются точкой с запятой.

Как это работает

Интерфейс Openable представляет собой соглашение с остальными частями приложения о том, что класс, реализующий данный интерфейс, обеспечит два метода ------

open() и close(),— которые не принимают параметров. Данное согласованное множество методов позволяет передавать различные объекты в одну и ту же функцию. При этом отношение наследования между ними не требуется.

Создайте файл class.Door.php:

<?php

require_once('interface.Openable.php');

class Door implements Openable {

private $_locked = false;

public function open() { if($this->_locked) {

print "Дверь не открывается. Она заперта."; } else {

print "скрип...<br>";

}

}

public function close() { print "Хлоп!!<br>";

}

public function lockDoor() { $this->_locked = true;

}

public function unlockDoor() { $this-> locked = false;

} ?>

}




удаление гигромы, гигрома стопы