PHP,OOP界面和抽象

可能重复:
界面和抽象类有什么区别?

我阅读了一个关于接口和抽象之间区别的指南,但我并没有明白这个指南的含义:为什么在使用抽象方法时使用完全接口,答案是接口的使用不要求我们继承某个抽象类,因此,两个不能从同一个类继承的类可以包含相似的接口,实际上使用接口允许我们不用冗余方法膨胀父类。 我真的很想理解它,但它没有注册,如果有人能在这里帮助我,我会非常感激。


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

1)如果您预计创建组件的多个版本,请创建一个抽象类。 抽象类为您的组件版本提供了一种简单而简单的方法。 通过更新基类,所有继承类都会随着更改而自动更新。 另一方面,接口一旦创建就无法更改。 如果需要新版本的界面,则必须创建一个全新的界面。

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

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

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

http://msdn.microsoft.com/en-us/library/scsyfw1d%28v=vs.71%29.aspx


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

相比之下,抽象方法只允许您交替使用父类的直接后代,这可能是有限制的,因为您不能再拥有多个行为集合(因为类只能有一个父级)。

链接地址: http://www.djcxy.com/p/54255.html

上一篇: PHP, OOP interface and abstraction

下一篇: Difference between Interface And Abstract Class