Interfaces允许您创建定义实现它的类的方法的代码.但是,您不能向这些方法添加任何代码.
Abstract classes允许您做同样的事情,同时向方法中添加代码.
现在,如果你能用抽象类实现同样的目标,为什么我们甚至需要接口的概念呢?
我已经被告知,它与OO理论有关,从C++到java,这是PHP的面向对象的基础.这个概念在Java中有用,但在PHP中不有用吗?这只是避免在抽象类中乱丢占位符的一种方法吗?我错过什么了吗?
Interfaces允许您创建定义实现它的类的方法的代码.但是,您不能向这些方法添加任何代码.
Abstract classes允许您做同样的事情,同时向方法中添加代码.
现在,如果你能用抽象类实现同样的目标,为什么我们甚至需要接口的概念呢?
我已经被告知,它与OO理论有关,从C++到java,这是PHP的面向对象的基础.这个概念在Java中有用,但在PHP中不有用吗?这只是避免在抽象类中乱丢占位符的一种方法吗?我错过什么了吗?
接口的全部意义在于使您可以灵活地强制您的类实现多个接口,但仍然不允许多个继承.从多个类继承的问题很多,而且多种多样,上面的wikipedia页很好地总结了这些问题.
接口是一种折衷方案.多重继承的大多数问题不适用于抽象基类,因此现在大多数现代语言禁用多重继承,但仍调用抽象基类接口,并允许类根据需要"实现"任意多个接口.