Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php:何时使用抽象类和接口类?_Php_Oop - Fatal编程技术网

php:何时使用抽象类和接口类?

php:何时使用抽象类和接口类?,php,oop,Php,Oop,我想知道你们是如何决定在应用程序开发过程中何时使用抽象类或接口类的,因为它们都提供了相似的功能,但略有不同。谢谢你的帮助。谢谢 当我在开发和尝试决定是使用接口还是抽象类时,我通常会考虑将继承的类是否只包含相同的结构(方法、属性等),而包含不同的实现 如果方法的实现不同,但我希望从结构的角度确保相同,那么我使用接口。如果结构和实现相同,我倾向于使用抽象类。当我希望继承类继承某些功能时,我使用抽象类;当我希望为一组类设置一些最低结构标准时,我使用接口 需要记住的一点是,任何给定的类都可以“继承”(技

我想知道你们是如何决定在应用程序开发过程中何时使用抽象类或接口类的,因为它们都提供了相似的功能,但略有不同。谢谢你的帮助。谢谢

当我在开发和尝试决定是使用接口还是抽象类时,我通常会考虑将继承的类是否只包含相同的结构(方法、属性等),而包含不同的实现


如果方法的实现不同,但我希望从结构的角度确保相同,那么我使用接口。如果结构和实现相同,我倾向于使用抽象类。

当我希望继承类继承某些功能时,我使用抽象类;当我希望为一组类设置一些最低结构标准时,我使用接口


需要记住的一点是,任何给定的类都可以“继承”(技术上实现)许多接口,但只能继承一个子类(无论抽象与否)。

像PHP这样的语言支持多接口实现,但不支持多类继承,这通常是决策的一部分——您的类是否支持多种行为(接口)还是作为一种类型的东西(基类)


还有一个问题是基本功能是如何实现的。如果您使用的是类似的方法,其中所有派生类都有通用的实现代码,那么您将希望使用抽象基类。

如果您有默认方法(附带代码),则使用抽象对于继承者。如果您只需要确保从该父级继承的类应实现定义的所有方法,请使用接口。警告:仅当您打算强制结构和组织(通常与团队一起)时,才使用抽象类和接口。这会带来性能开销。

这是一篇很好的文章,解释了接口的概念,以及为什么要使用它,以及如何在PHP中声明抽象类。尽管它没有区分何时使用这两个概念。

当需要绑定某些功能时,请使用接口。但如果需要一些可选功能,请使用抽象类。例如,如果isi(印度标准协会)为具有功能的计算机显示器制定了标准(它应该有)--显示器、电源按钮、对比度设置器。如果所有3项功能都是强制性的,则使用界面,该界面约束显示器制造商公司实现所有3项功能。如果有可选功能,则使用抽象类。

如果结构和实现相同,则可能重复的可能重复未说明原因结束使用抽象类如果需要相同的结构和实现,您可以使用抽象类?@RNKushwaha,我的意思是,如果我想在多个继承类之间共享相同的方法/属性实现,我将创建一个抽象类,以便实现可以存在于抽象类中。接口不允许任何实现。这更有意义吗?