接口或抽象类:使用哪一个?

2022-08-30 06:00:19

请解释一下我什么时候应该使用PHP,什么时候应该使用?interfaceabstract class

如何将我的输入更改为 ?abstract classinterface


答案 1

当您想要强制在系统中工作的开发人员(包括您自己)在他们将要构建的类上实现一定数量的方法时,请使用接口。

如果要强制在系统中工作的开发人员(包括您自己)实现一组数量的方法,并且希望提供一些基本方法来帮助他们开发子类,请使用抽象类。

要记住的另一件事是客户端类只能扩展一个抽象类,而它们可以实现多个接口。因此,如果您在抽象类中定义行为协定,这意味着每个子类可能只符合一个协定。有时,当您想强迫用户程序员沿着特定路径前进时,这是一件好事。其他时候会很糟糕。想象一下,如果PHP的可数和迭代器接口是抽象类而不是接口。

当您不确定要走哪条路时,一种常见的方法是创建一个接口,然后让你的抽象类实现该接口。


答案 2

和 :Abstract ClassInterface

抽象类

抽象类可以提供一些功能,并将其余部分留给派生类

  • 派生类可能会也可能不会覆盖基类中定义的具体函数。

  • 从抽象类扩展的子类在逻辑上应该是相关的。

接口

接口不能包含任何功能。它包含方法的定义。

  • 派生类必须为接口中定义的所有方法提供代码

  • 可以使用接口将完全不同且不相关的类逻辑地组合在一起。


推荐