- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
5.2.1 类的继承性 3.密封类 为了阻止一个类的代码被其他类继承,可以使用密封类,因为在.NET中,加载密封类时将对密封类的方法调用进行优化,因此使用密封类可以提高应用程序的可靠性和性能。另外,软件开发者通过使用密封类还可以把自己的知识产权保护起来,避免他人共享代码。 在C#中,添加关键字sealed可以声明密封类。 5.2.2 类的多态性 多态性是面向对象程序设计的一个重要特征,多态的意思是一种事物有多种形态。 当派生类从基类继承时,它会获得基类的所有方法、字段、属性和事件。派生类允许扩展基类的成员,也可以重写基类的方法成员,以更改基类的数据和行为。为了使用派生类能更改基类的数据和行为,C#提供了两种选择:一是使用新的派生成员替换基成员,二是重写虚拟的基成员。 在C#中,基类对象可以引用派生类对象,但不允许派生类对象引用基类对象,这样,一个基类对象名称既可以指向基类对象,也可以指向派生对象。而当基类对象执行一个基类与派生类都具有的同名方法调用时,程序可以根据基类对象的类型不同(基类还是派生类)进行正确的调用。 5.2.2 类的多态性 1.使用new关键字重新定义类的成员 使用new关键字来定义与基类中同名的成员,即可替换基类的成员。如果基类定义了一个方法、字段或属性,则new关键字用于在派生类中创建该方法、字段或属性的新定义。new关键字应放置在要替换的类成员的返回类型之前。 2.用virtual和override关键字定义类成员 基类中的声明格式: public virtual 方法名称([参数列表]){ } 派生类的声明格式: public override方法名称([参数列表]){ } 其中,基类与派生类中的方法名称与参数列表必须完全一致。 5.2.2 类的多态性 【实例5-4】虚方法演示。 5.2.2 类的多态性 当点击“创建子类对象并调用方法”按钮时,以子类对象做为实参,将调用子类的Eat方法,显示结果会不同 5.2.2 类的多态性 使用virtual和override时要注意以下几点: (1) 字段不能是虚拟的,只有方法、属性、事件和索引器才可以是虚拟的; (2) 使用virtual修饰符后,不允许再使用static、abstract或override修饰符; (3) 派生类对象即使被强制转换为基类对象,所引用的仍然是派生类的成员; (4) 派生类可以通过密封来停止虚拟继承,此时派生类的成员使用sealed override声明。 5.2.2 类的多态性 3.调用基类方法 当派生类重载或覆盖基类方法后,如果想调用基类的同名方法,可以使用base关键字。如,在Dog类的Eat方法中,希望使用基类的Eat方法,可以用如下方法: public override void Eat() { base.Eat(); } 5.3 抽象类与接口 5.3.1 抽象类 5.3.2 接口 5.3.3 抽象类与接口的比较 返回 5.3.1 抽象类 抽象方法是指在基类的定义中,不包含任何实现代码的方法,实际上就是一个不具有任何具体功能的方法。这样的方法唯一的作用就是让派生类重写。 而只要在类中包含一个抽象方法,该类即为抽象类。在抽象类中,也可以声明非抽象方法。 1.抽象类与抽象方法的声明 在C#中,抽象类和抽象方法使用关键字abstract声明,一般形式如下: public abstract class 抽象类名 { [访问修饰符] abstract 返回值类型 方法名([参数列表]) } 5.3.1 抽象类 抽象类中也可以有抽象属性。类的属性成员添加了abstract关键字后,就成了抽象属性。抽象属性不提供属性访问器的实现,它只声明该类支持的属性,而将访问器的实现留给派生类。抽象属性同样可以是只读的、只写的或可读写的属性。一般形式如下: public abstract返回值类型 属性名 { get; set; } 抽象类可以包含抽象的成员,如抽象属性和抽象方法,也可以包含非抽象的成员,甚至还可以包含虚方法。要注意的是,抽象成员必须在抽象类中声明,但抽象类不要求必须包含抽象成员 5.3.1 抽象类 2.重载抽象方法 抽象类中的抽象方法和抽象属性都没有提供实现,当定义抽象类的派生类时,派生类必须重载基类的抽象方法和抽象属性(如果派生类没有进行重载,则派生也必须声明为抽象类,即在类定义前加上abstract。这一点是与虚方法不同的,因为对于基类的虚方法,其派生类可以不重载。重载抽象类的方法和属性必须使用override关键字。重载抽象
您可能关注的文档
- semi-supervised-learning半监督学习.pptx
- stm32单片机LED实验流程.docx
- SQL-Server-日期及时间函数.doc
- t3总账培训课件文档.docx
- U3-运算定律-教学课件.doc
- U6-除数是两位数除法.doc
- U6-除数是两位数除法-研学案设计.doc
- STP-市场细分-市场定位.pptx
- Unit-1-Part-A-第2课时.ppt
- Unit-1-知识点总结及训练-(共52张教学课件).ppt
- 零团费现象的法律透视与综合治理路径探究.docx
- 论网络公关不正当竞争行为的监管:问题剖析与优化路径.docx
- 马克思主义政治社会化理论中的“普遍化”问题研究.docx
- 金融危机下太钢文化战略的破局与重塑:实践、成效与前瞻.docx
- 化瘀生新汤灌肠疗法对宫腔术后月经过少的疗效及机制探究.docx
- 解析蓝光对黑曲霉生长发育的调控机制_多维度研究与应用探索.docx
- 盆腔异位肾肾动态显像前后位像GFR测定值差异及临床意义探究.docx
- 基于数值模拟的尿素选择性催化还原系统性能提升与优化策略研究.docx
- 硫对砷胁迫下秋茄幼苗渗透调节与巯基化合物的影响机制探究.docx
- ANA随机变量概率极限性质的深入探究与应用拓展.docx
最近下载
- QP—EN—订单变更控制程序.doc VIP
- 2026届广西南宁二中化学高二上期末监测模拟试题含答案.doc VIP
- (人教A版)选择性必修二高二上学期期末复习检测AB卷(基础卷)(原卷版).docx VIP
- GBT18487.1 送审稿.pdf VIP
- 2025年综合类-炉前工-初级炉前工历年真题摘选带答案(5卷-选择题).docx VIP
- 2026年青海省交通控股集团有限公司招聘笔试备考试题(45人)附答案解析.docx VIP
- 三级体系文件编写工作要求-详解.ppt VIP
- 抽水蓄能电站进出水口水力学数值模拟及模型试验规程.pdf
- GB 50058-2014 爆炸危险环境电力装置设计规范.docx VIP
- 临时占道施工方案及安全措施.docx VIP
原创力文档


文档评论(0)