为了账号安全,请及时绑定邮箱和手机立即绑定

PHP中的接口有什么意义?

/ 猿问

PHP中的接口有什么意义?

繁星coding 2019-08-24 15:35:44

PHP中的接口有什么意义?

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

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

现在,如果您可以使用抽象类实现相同的目标,为什么我们甚至需要接口的概念?

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


查看完整描述

3 回答

?
弑天下

接口的整个要点是让您可以灵活地让您的类实现多个接口,但仍然不允许多重继承。从多个类继承的问题是多种多样的,其上的维基百科页面总结得很好。

接口是妥协。多重继承的大多数问题都不适用于抽象基类,因此现在大多数现代语言都禁用多重继承,但是调用抽象基类接口并允许类根据需要“实现”多个。


查看完整回答
反对 回复 2019-08-24
?
RISEBY

我不了解其他语言,接口的概念是什么。但是对于PHP,我会尽力解释它。请耐心等待,如果有帮助,请评论。

接口用作“契约”,指定一组子类的作用,但不指定它们是如何做的。

规则

  1. 接口无法实例化。

  2. 您不能在接口中实现任何方法,即它只包含方法的.signature而不包含详细信息(正文)。

  3. 接口可以包含方法和/或常量,但不包含任何属性。接口常量与类常量具有相同的限制。接口方法是隐式抽象的。

  4. 接口不能声明构造函数或析构函数,因为这些是类级别的实现细节。

  5. 界面中的所有方法都必须具有公共可见性。

现在让我们举个例子。假设我们有两个玩具:一个是狗,另一个是猫。

正如我们所知,狗吠和猫喵。这两种方法有相同的说法,但具有不同的功能或实施方式。假设我们给用户一个带有发言按钮的遥控器。

当用户按下发言按钮时,玩具必须说出来并不重要,无论是狗还是猫。

这是一个使用接口的好例子,而不是抽象类,因为实现是不同的。为什么?记得

如果需要通过添加一些非抽象方法来支持子类,则应使用抽象类。否则,接口将是您的选择。


查看完整回答
反对 回复 2019-08-24
?
慕粉4167745

接口就像你的基因。

抽象类就像你的父母一样。

它们的目的是遗传的,但在抽象类和接口的情况下,继承的内容更具体


查看完整回答
反对 回复 2019-08-24

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信