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、OOP接口与抽象_Php_Oop_Interface_Abstract - Fatal编程技术网

PHP、OOP接口与抽象

PHP、OOP接口与抽象,php,oop,interface,abstract,Php,Oop,Interface,Abstract,可能重复: 我读了一本关于界面和抽象之间区别的指南,但我不理解,指南说: 当我们可以使用抽象方法时,为什么要使用精确的接口, 答案是,接口的使用不需要我们从某个抽象类继承, 因此,不是从同一类继承的两个类可以包含相似的接口, 实际使用的接口允许我们不使用冗余方法膨胀父类。 我真的很想理解它,但它没有注册,如果有人能在这里帮助我,我将非常感谢。关于何时使用接口和抽象类的一些建议(提供:MSDN) 1) 如果您希望创建组件的多个版本,请创建一个抽象类。抽象类提供了一种简单易行的方法来对组件进行版本

可能重复:

我读了一本关于界面和抽象之间区别的指南,但我不理解,指南说: 当我们可以使用抽象方法时,为什么要使用精确的接口, 答案是,接口的使用不需要我们从某个抽象类继承, 因此,不是从同一类继承的两个类可以包含相似的接口, 实际使用的接口允许我们不使用冗余方法膨胀父类。
我真的很想理解它,但它没有注册,如果有人能在这里帮助我,我将非常感谢。

关于何时使用接口和抽象类的一些建议(提供:MSDN)

1) 如果您希望创建组件的多个版本,请创建一个抽象类。抽象类提供了一种简单易行的方法来对组件进行版本设置。通过更新基类,所有继承类都会随更改自动更新。另一方面,接口一旦创建就无法更改。如果需要新版本的接口,则必须创建一个全新的接口

2) 如果您正在创建的功能在各种不同的对象中都很有用,请使用接口。抽象类应主要用于密切相关的对象,而接口最适合为不相关的类提供公共功能。

3) 如果您正在设计小而简洁的功能,请使用接口。如果要设计大型功能单元,请使用抽象类

4) 如果希望在组件的所有实现中提供通用的、实现的功能,请使用抽象类。抽象类允许您部分实现类,而接口不包含任何成员的实现


接口允许您在几个不相关的类层次结构中具有基于相似方法集合的多态性。这意味着您可以对一个方法进行编码,以使用不一定相互关联的所有类中的任何一个。您还可以通过将多个接口应用于一个类来进行混合和匹配,因此该类可以用于许多事情


相比之下,抽象方法只允许您交换地使用父类的直接后代,这可能会受到限制,因为您不能有多个行为集合(因为类只能有一个父类).

请参见此处:以下是有关stackoverflow的解释,可能有太多问题与同一主题有关@user1316123:您研究过这些吗?我有一篇文章介绍抽象类和接口之间的区别。我希望能有帮助。谢谢你,祝你今天愉快。