- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
注意!我在这里所描述的抽象类和接口是基于C#的。
一、抽象类抽象类是特殊的类,只是不能被实例化;除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。另外,抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果不覆盖,则其派生类必须覆盖它们。
抽象类实例?1??? public abstract class A?2??? {?3??????? private int? num = null;?4?5??????? public int? Num?6??????? {?7??????????? get { return num; }?8??????????? set { num = value; }?9??????? }1011??????? public virtual int? getNum()12??????? {13??????????? return num;14??????? }1516??????? public void setNum(int? n)17??????? {18??????????? this.num = n;19??????? }2021??????? public abstract void F();22??? }2324??? public abstract class B:A25??? {26??????? //public override void F()27??????? //{28??????? //??? throw new Exception(The method or operation is not implemented.);29??????? //}3031??????? public abstract void E();32??? }3334??? public class C : B35??? {36??????? private C()37??????? {38??????? }3940??????? public override void E()41??????? {42??????????? throw new Exception(The method or operation is not implemented.);43??????? }4445??????? public override void F()46??????? {47??????????? C c = new C();48??????????? throw new Exception(The method or operation is not implemented.);49??????? }50??? }
二、接口接口是引用类型的,类似于类,更和抽象类有所相似,以至于很多人对抽象类和接口的区别比较模糊。和抽象类的相似之处有三点:1、不能实例化;2、包含未实现的方法声明;3、派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括其他成员);
接口有如下特性:接口除了可以包含方法之外,还可以包含属性、索引器、事件,而且这些成员都被定义为公有的。除此之外,不能包含任何其他的成员,例如:常量、域、构造函数、析构函数、静态成员。一个类可以直接继承多个接口,但只能直接继承一个类(包括抽象类)。
接口实例?1??? public delegate void Del();?2??? public interface ITest?3??? {?4??????? //int ?a = null;?5?6??????? int A?7??????? {?8??????????? get;?9??????? }1011??????? void Test();12??????? event Del OnDel;13??????? int this[int index]14??????? {15??????????? get;16??????????? set;17??????? }18??? }
注意!还有另外一种类不能被实例化:所有构造函数都被标记为private,这种类也是不能被实例化的,严格的说是不能在类外被实例化,
可以在此类的内部实例化(这种方式可以用于实现单件设计模式)。注意一点,这样的类也不能够作为基类来继承。
三、抽象类和接口的使用抽象类用于部分实现一个类,再由用户按需求对其进行不同的扩展和完善;接口只是定义一个
您可能关注的文档
- avr单片机外部晶振延时.doc
- AV发烧入门家庭影院的组成和其设计.doc
- AWG标准线径对照表.doc
- Ayvkdla大学生生活.doc
- A–Z中国人姓氏的英语翻译.doc
- A区保安管理服务方案.doc
- A类表承包单位用表.doc
- A股及B股的含义A股及B股的区别.doc
- A股指数投资基金大全.doc
- B03《小强升职记–职业生涯规划》课程大纲3天.doc
- 5.3用频率估计概率(课件)高一数学(湘教版2019必修第二册).pptx
- 第11课 创新思维要善于联想(课件)高考政治一轮复习(新教材新高考).pptx
- 第6课 走进经济全球化 课件-新高考政治一轮复习选择性必修一《当代国际政治与经济》课件.pptx
- 数据库发展研究报告(2025年)-大数据技术标准推进委员会.docx
- AI 智能体运行安全测试标准(中文).docx
- 第四单元 水的三态变化(复习课件)四年级科学上学期期末复习(青岛版).pptx
- 8.1 基本立体图形(第1课时)(课件)高一数学(人教A版2019必修第二册).pptx
- Unit 4 Plants around us第四课时(课件)人教PEP版(2024)英语三年级上册.pptx
- 高三生物一轮复习课件第26讲 基因的表达.pptx
- 专题01 电场力的性质 高二物理上学期期末考点(人教版2019).pptx
最近下载
- 八项规定回头看自查报告.pdf VIP
- 2012北京 第一册市政道路、桥梁工程预算定额.pdf VIP
- 华为LTC流程IPD流程ITR流程三大核心流程变革一篇文章就全明白啦V2.0!.pdf VIP
- 普洱哈尼族彝族自治县2025年数学五年级第二学期期末学业质量监测试题含答案.doc VIP
- D-ZD2010发电厂汽水管道支吊架设计手册制造图册-中国电力规划.pdf VIP
- 产科急救应急预案.docx VIP
- 关于社区卫生服务中心五年发展规划十五五发展规划2025.docx VIP
- NBT 25085-2018 核电厂常规岛焊接技术规程.pdf VIP
- 烟草代办合同范本6篇.docx VIP
- 危险废物污染防治责任制度.docx VIP
文档评论(0)