php интерфейсы и абстрактные классы



Php интерфейс и абстрактный класс

Автор Дмитрий Митяев задал вопрос в разделе PHP

Есть ли интерфейсы и абстрактные классы в РНР? и получил лучший ответ

Ответ от Андрей[гуру]
Да, и интерфейсы и абстрактные классы в PHP есть. Интерфейсы не могут иметь реализаций методов - только определения. Потому для уменьшения дублирования кода в версии 5.4 появились трейты (trait).
Manunich элементарно не понимает, что такое ООП.
1. Интерфейс - это контракт. Класс, реализующий интерфейс, обязан определить все методы этого интерфейса.
2. Даже в PHP 5 для формальных параметров функций / методов можно задать имя класса / интерфейса - в качестве типа параметра. И если это будет имя интерфейса, то автоматически гарантируется, что переданный методу объект содержит необходимый функционал.

Ответ от Manunich[гуру]
Ну, так как это скриптовый язык, то интерфейсы в явном виде там не нужны, всё и так будет работать, например можно передать объекты абсолютно разных классов в функцию, и у этого объекта вызвать какую-либо функцию, которая есть по всех классах - и это будет работать.То же самое касается и абстрактных классов - они же не имеют реализации методов, а значит вообще в них нет смысла в рамках языка php. Просто в каждом классе реализуй необходимый функционал и используй.Наследование не абстрактных классов в php есть.Upd: Поискал и нашёл, что интерфесы всё таки есть (, вот только кто-нибудь сможет объяснить зачем они нужны в php?В чём отличие классовclass A{ public function foo() { }}class B{ public function foo() { }}От классовinterface a{ public function foo();}class A implements a{ public function foo() { }}class B implements a{ public function foo() { }}

Ответ от Ёаня Семенов[гуру]
Интерфейсы начиная с пятой версии есть а абстрактные классы с рождения ...

Ответ от 22 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Есть ли интерфейсы и абстрактные классы в РНР?
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*