PHP、OOP 接口(interface)和抽象

标签 php oop interface abstract

Possible Duplicate:
What is the difference between an interface and abstract class?

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

最佳答案

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

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

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

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

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

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

关于PHP、OOP 接口(interface)和抽象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10720258/

相关文章:

interface - 像类一样向 Visio UML 界面添加属性

c# - 虚拟馆藏界面

php - 从 Laravel 中的对象数组中获取值

php - 如何安装phpUnit测试?

javascript - PhoneGap-App 的正确回调和引用

javascript - 可以让 javascript 对象返回值而不是 self 吗?

java - 如何确定哪个接口(interface)属于每个网络目标 - Java?

php - 我在 PHP 中使用 try 但 PDO 不会捕获异常

php - 发送 session 数据 : Php on one server and jsp on another

java - 为什么不能从子类访问 protected 方法?