PHP中的接口有什么意义?

2022-08-30 06:13:37

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

抽象类允许您执行相同的操作,并向方法中添加代码。

现在,如果你能用抽象类实现同样的目标,为什么我们甚至需要接口的概念呢?

有人告诉我,这与从C++到Java的OO理论有关,这就是PHP的OO内容所基于的。这个概念在Java中有用,但在PHP中却没有用?这是否只是一种防止在抽象类中散落占位符的方法?我错过了什么吗?


答案 1

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

接口是一种折衷方案。多重继承的大多数问题都不适用于抽象基类,因此现在大多数现代语言都禁用了多重继承,但调用抽象基类接口,并允许类“实现”任意数量的这些基类。


答案 2

这个概念在面向对象编程中非常有用。对我来说,我认为接口是一种契约。只要我的班级和你们的班级就这种方法的签名合同达成一致,我们就可以“接口”。至于抽象类,我认为更多的是基类,它们存根了一些方法,我需要填写详细信息。


推荐