




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、方法隐藏 如果子类方法的方法名和基类的方法名相同时,系统将隐藏基类同名方法,自动调用子类的同名方法二、Virtual和override virtual用在基类中,指定一个虚方法(属性),表示这个方法(属性)可以重写。 例如:public virtual void eat(); override用在派生类中,表示对基类虚方法(属性)的重写。例如:public override void eat();代码举例:1. using System;2.3. using System.Collections;4.5.6.7. public class Animal8.9. 10.11. public Animal() 12.13. public virtual void eat()14.15. 16.17.18.19. 20.21. 22.23.24.25. public class dog:Animal26.27. 28.29. public override void eat()30.31. 32.33. /如果父类的虚方法中有我们需要的数据,可以在子类的覆盖方法中调用它:34.35. /base.eat();36.37. Console.WriteLine(狗吃骨头);38.39. 40.41. 42.43.44.45. public class cat:Animal46.47. 48.49. public override void eat()50.51. 52.53. Console.WriteLine(猫吃鱼);54.55. 56.57. 58.59.60.61. public class panda:Animal62.63. 64.65. public override void eat()66.67. 68.69. Console.WriteLine(熊猫吃竹子);70.71. 72.73. 74.75.76.77. public class MainFun78.79. 80.81. static void Main()82.83. 84.85. Animal anim = new Animal3;86.87. anim0 = new dog();88.89. anim1 = new cat();90.91. anim2 = new panda();92.93. anim0.eat();94.95. anim1.eat();96.97. anim2.eat();98.99. 100.101. 运行结果:总结:1.virtual关键字和override关键字是成对出现的,否则是语法错误。2.派生类可以通过将重写声明为sealed来停止虚拟继承。这需要在类成员声明中的override关键字前面放置sealed关键字。3.在子类中重写基类中的虚方法时,可以使用base关键字调用基类中的虚方法。三、多态通过继承,一个类可以用作多种类型:可以用作它自己的类型、任何基类型,或者在实现接口时用作任何接口类型。这称为多态性。C#中的每种类型都是多态的。类型可用作它们自己的类型或用作Object实例,因为任何类型都自动将Object当作基类型。多态性不仅对派生类很重要,对基类也很重要。任何情况下,使用基类实际上都可能是在使用已强制转换为基类类型的派生类对象。基类的设计者可以预测到其基类中可能会在派生类中发生更改的方面。例如,表示汽车的基类可能包含这样的行为:当考虑的汽车为小型货车或敞篷汽车时,这些行为将会改变。基类可以将这些类成员标记为虚拟的,从而允许表示敞篷汽车和小型货车的派生类重写该行为。多态是父类使用子类的方法四、私有构造函数用关键字private修饰的构造函数就是私有构造函数。五、析构函数 析构函数(destructor)与构造函数相反,当对象脱离其作用域时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做“清理善后”的工作(例如在建立对象时用new开辟了一片内存空间,应在退出前在析构函数中用delete释放)。析构函数的声明:1. class Car2.3. 4.5. Car()/ destructor6.7. 8.9. / cleanup statements.10.11. 12.13. 该析构函数隐式地对对象的基类调用Finalize。这样,前面的析构函数代码被隐式地转换为以下代码:1. protected override void Finalize()2.3. 4.5. try6.7. 8.9. / Cleanup statements.10.11. 12.13. finally14.15. 16.17. base.Finalize();18.19. 20.21. 这意味着对继承链中的所有实例递归地调用Finalize方法(从派生程度最大的到派生程度最小的)。析构函数和构造函数的区别:构造函数和析构函数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 17438-5:2025 EN Intelligent transport systems - Indoor navigation for personal and vehicle ITS stations - Part 5: Requirements and message specification for central ITS
- 2025年服装行业虚拟试衣技术应用前景研究报告
- 2025年科技创新行业人工智能技术应用前景分析研究报告
- 2025年通信行业5G网络应用前景研究报告
- 2025年医疗器械行业创新医疗器械产品市场前景预测报告
- 2025年文化娱乐行业虚拟现实技术应用前景探讨报告
- 2025年云计算行业云计算技术与应用前景展望报告
- 2025年战略咨询行业全球经济形势与发展前景展望研究报告
- 商场全体安全培训内容课件
- 国家事业单位招聘2025中国农业科学院生物技术研究所第一批招聘笔试笔试历年参考题库附带答案详解
- 2025心肺复苏课件
- 2025年资源共享授权合同
- 信息安全管理制度
- 社交心理在网络营销中的实战运用
- 2025年少先队应知应会知识考试题库
- 2025年宁波农商发展集团限公司招聘高频重点提升(共500题)附带答案详解
- 蜀道集团招聘笔试
- 历年全国普通话考试真题50套
- 2024年社区警务规范考试题库
- 农业测绘技术服务方案
- 2025年上海市高考语文专项复习:识记背诵默写
评论
0/150
提交评论