php - PHP中的接口(interface)有什么意义?

标签 php oop interface theory

Interfaces允许您创建定义实现它的类的方法的代码。但是,您不能向这些方法添加任何代码。

Abstract classes允许您做同样的事情,以及向方法中添加代码。

如果你可以用抽象类实现同样的目标,为什么我们还需要接口(interface)的概念呢?

有人告诉我,它与从 C++ 到 Java 的 OO 理论有关,这是 PHP 的 OO 东西所基于的。这个概念在 Java 中有用但在 PHP 中没有用吗?这只是一种避免在抽象类中乱扔占位符的方法吗?我错过了什么吗?

最佳答案

接口(interface)的全部意义在于让您灵活地让您的类强制实现多个接口(interface),但仍然不允许多重继承。从多个类继承的问题多种多样,wikipedia上面的页面很好地总结了它们。

接口(interface)是一种妥协。多重继承的大多数问题不适用于抽象基类,因此现在大多数现代语言都禁用多重继承,但调用抽象基类接口(interface)并允许类“实现”任意数量的接口(interface)。

关于php - PHP中的接口(interface)有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20463/

相关文章:

c++ - 如果某些类继承了抽象基类,则确定何时在某些类上使用函数

php - laravel 4 中的全局变量

php - 如何在php中将形状文件x,y坐标转换为经纬度

unit-testing - 在测试中覆盖 Go 方法

C++: "No match for ' 运算符<<' (operand types are ' std::ostream' 和 'Complex' )"

java - java接口(interface)中的数据隐藏

java - 是否可以从 AspectJ 编织中排除接口(interface)类

interface - 在 Go 的接口(interface)中列出接口(interface)

php - 解析 - JSON - 数组的数组

php - 初学者的好奇心