接口允许您创建定义实现它的类的方法的代码。但是,您不能向这些方法添加任何代码。
抽象类允许您做同样的事情,以及向方法添加代码。
现在如果你可以用抽象类实现同样的目标,为什么我们还需要接口的概念呢?
我被告知它与从 C++ 到 Java 的 OO 理论有关,这是 PHP 的 OO 东西所基于的。这个概念在 Java 中有用但在 PHP 中没有用吗?这只是一种避免在抽象类中乱扔占位符的方法吗?我错过了什么吗?
接口的全部意义在于让您灵活地让您的类强制实现多个接口,但仍然不允许多重继承。从多个类继承的问题多种多样,维基百科页面很好地总结了这些问题。
接口是一种妥协。多重继承的大多数问题不适用于抽象基类,因此现在大多数现代语言都禁用多重继承,但调用抽象基类接口并允许一个类“实现”任意数量的那些。