В чем смысл интерфейсов в PHP?


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

Абстрактные классы позволяют вам делать то же самое, наряду с добавлением кода в метод.

Теперь, если вы можете достичь той же цели с помощью абстрактных классов, зачем нам вообще нужна концепция интерфейсов?

Мне сказали, что это связано с теорией OO от C++ до Java, что и есть OO PHP материал основан на. Полезна ли эта концепция в Java, но не в PHP? Это просто способ избежать того, чтобы заполнители были разбросаны в абстрактном классе? Я что-то упускаю?

Author: hakre, 0000-00-00

1 answers

Весь смысл интерфейсов в том, чтобы предоставить вам гибкость, позволяющую вашему классу быть вынужденным реализовывать несколько интерфейсов, но при этом не допускать множественного наследования. Проблемы с наследованием от нескольких классов многочисленны и разнообразны, и страница википедии на ней довольно хорошо суммирует их.

Интерфейсы - это компромисс. Большинство проблем с множественным наследованием не относятся к абстрактным базовым классам, поэтому большинство современных языков в наши дни отключают множественное наследование. наследование все же вызывает интерфейсы абстрактных базовых классов и позволяет классу "реализовывать" столько из них, сколько они хотят.

 133
Author: Craig H, 2015-03-03 01:35:35