C#新手必读:类接口在继承中的重要角色

ZDNet软件频道 时间:2003-01-10 作者:BUILDER.COM |  我要评论()
本文关键词:
在本文的第一部分里,我们将会仔细看看类接口。我们会考察一下如何将它们同抽象基本类进行比较,以及应该在什么时候使用它们。在今后的文章中我们还会集中讨论如何创建自定义接口。
类接口就像是某种商业约定。如果类实现一个接口,这就意味着它——以及从初始类继承来的任何衍生类——必须具有对成员的实现,这些成员的签名被包括在实现规范里。所以如果知道某个类会实现一个接口,那么你就会知道它也实现着某些特定的成员,还会预料到这些成员会如何工作——至少以方法签名和成员类型的观点来看是这样的。(当然,没有什么能够阻止某人把一个由接口所指定的方法作为Stub来实现。以这种方式编写的方法虽然能够满足接口所指定的约定,但是却不能确确实实地完成任何任务。)

在本文的第一部分里,我们将会仔细看看类接口。我们会考察一下如何将它们同抽象基本类进行比较,以及应该在什么时候使用它们。然后,我们要讨论.NET的一些最重要的接口。最后,我们会看看如何创建一个能够实现IComparable接口的类。(正如你将看到的那样,实现IComparable就意味着这个类必须包含一个比较方法,让它根据类来给对象排序。)在今后的文章中我们还会集中讨论如何创建自定义接口。

理解类接口

从习惯上讲,接口的名称都以大写I开头,紧接着的一个字母也要大写。(除了IComparable之外,另一个例子是IEnumerable。)接口就像是一个抽象基础类:两者都不用详细说明实现的细节,而且两者都会被衍生类所使用。然而,类可以衍生自基础类,并且还能够实现接口——或者,事实上,实现多个接口。(相反,C#的类只能从一个基础类继承。)在这个方面,接口比类继承更加通用——而且更加有用,尽管有人对此还有疑议。

接口的实现有助于保证连续性。有关研究已经表明:使用能够实现接口的类库所编写的应用程序其失误会更少。

一组程序员(例如.NET Framework的创建者)创建了一个类库,而另一组程序员(你和我)会使用这些类,在这种情况下,接口会工作得非常好。接口的实现还是开发团队的领导者制定和发布项目规范的好方式。项目领导者编写好接口并指定类的强制实现。

正如我会在文章后面的内容里展示的那样,Visual Studio .NET开发环境本身会有助于加强接口所创建的约定。如果你试图运行项目里包含有能够实现接口的类,而且由接口指定的成员不是在类里实现的,那么你就会碰到句法错误,而包含有代码的项目既不会运行也不会被编译。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134