- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
维普资讯
2005年 第 5期 计 算 机 系 统 应 用
C#语言中的抽象类与接 口的研究及应用
ResearchandApplicationofAbstractClassandInterfaceinC撑Language
蓝雯飞 陈淑清 周 俊 (武汉 中南民族大学计算机科学学院 430074)
摘要:抽象类和接 口是c#-~/-g-中两个重要的对象引用类型,是C#程序设计使用多态性的基础。本文对两者进行
比较。并通过例子说明了抽象类和接 口的区别和使用场合。
关犍词:C#语言 类 抽象类 接 口
1 引言 继承别的类,但在 C#语言中类都隐式的继承 Object
c#是Microsoft近年来推出的一个新的编程语言,像 类。具体类可以实现一个或多个接口,也可以不实现
Java一样,C#也是完全面向对象的。也就是说C#中的 任何接 口。
所以代码都封装在类中。c#也具有面向对象语言所共 具体类的成员可以包括 :常量、字段、方法、属性、
有的三个特点:继承、封装和多态,其中多态主要有抽象 索引函数、事件、运算符、构造函数、析构函数和嵌套的
类和接口来实现。抽象类和接口在功能上有许多相似 类型声明等。此外类可以继承,在c#中所有的类,不
之处,因此许多读者不知道如何区分什么时候该使用抽 管是抽象类还是具体类,只能单继承。也就是说 ,一个
象类,什么时候该使用接口。本文首先从二者的定义和 子类只能有一个父类,而不允许同时继承来自两个或
语法的层面对二者比较分析,接下来举了二个例子进一 两个以上不同父类的属性和方法。
步说明,最后结合二个例子从语义的层面来讨论二者的 2.2 抽象类
区别和适用的场合。目的是让读者在面临选择的时候, 在c#中,具体类用abstractclass关键字声明抽象
有规可循,设计出更加高效、灵活、健壮的c耀 序。 类。抽象类最显著的特点在与抽象类不能实例化,即
在编程时不能new出一个抽象类的对象。其他特点还
2 具体类、抽象类和接口 有:抽象类不能被密封。当具体类继承抽象类时,具体
类是对同类对象的共性加以抽象和封装。类是一 类必须覆盖抽象类的方法。抽象类中不一定包含抽象
种数据结构,具体类中包含数据成员、函数成员以及嵌 方法,但包含抽象方法的类一定要被声明为抽象类,
套类型。c#中的类分具体类 (非抽象类)和抽象类。 否则编译时将出错。
二者最大的区别就是具体类可以直接被实例化,而抽 抽象类在面向对象程序设计中的作用:
象类不允许直接被实例化。而接 口是接 口用户 (使用 (I)为一些相关的类接供了公共基类以便为下层
接口的程序)与接口的实现者 (实现接口的类)之间在 类功能相似但实现代码不同的那些方法对外提供统一
建立起一种约定,用户只需关心接口有哪些功能而不 的接口,使c#程序具有多态性;
必关心它们的实现,接 口的实现者即类必须按约定为 (2)为下层相关子类提供一些公用方法的实现代
接口中的各功能,其实就是为抽象方法提供实现代码。 码,以减少代码冗余;
下面,我们从具体类、抽象类和接口的定义和语法 (3)防止类被意外实例化,这对一些直接实例化
层面来分析三者的区别和联系。 没有意义的类,可以加上abstract关键字,这样可以增
2.1具体类 强代码的安全性。
在c#中,具体类用class关键字声明,是c#程序最 2.3接口
基本的单位。具体类可以别的类继承而来,也可以不
文档评论(0)