请解释什么时候应该使用PHP interface,什么时候应该使用abstract class

如何将abstract class更改为interface

最佳答案

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

当您要强制系统中的开发人员(包括您自己)执行一定数量的方法时,请使用抽象类,以提供一些基本方法来帮助他们开发子类。

要记住的另一件事是,客户端类只能扩展一个抽象类,而它们可以实现多个接口(interface)。因此,如果要在抽象类中定义行为契约,则意味着每个子类只能遵循一个契约。有时候,当您想迫使用户程序员沿着特定的路径前进时,这是一件好事。有时会很糟糕。想象一下,如果PHP的Countable和Iterator接口(interface)是抽象类而不是接口(interface)。

当您不确定该走哪条路时(cletus below提到),一种常见的方法是创建一个接口(interface),然后让您的抽象类实现该接口(interface)。

10-05 23:13
查看更多