- 1
- 0
- 约3.77千字
- 约 14页
- 2015-12-13 发布于广东
- 举报
在小册子 * * 第8章 继承与多态 本章要点: 继承的概念 C#中的继承机制 虚方法与override关键字 多态性 在线教务辅导网: 教材其余课件及动画素材请查阅在线教务辅导网 QQ:349134187 或者直接输入下面地址: 8.1 什么是继承 一个新类从已有的类那里获得其已有特性,这种现象称为类的继承。通过继承,一个新建子类从已有的父类那里获得父类的特性。从另一角度说,从已有的类(父类)产生一个新的子类,称为类的派生。类的继承是用已有的类来建立专用类的编程技术。派生类继承了基类的所有特性与功能,并可以对成员作必要的增加或调整。一个基类可以派生出多个派生类,每一个派生类又可以作为基类再派生出新的派生类,因此基类和派生类是相对而言的。一个派生类有且只能有一个基类,即C#不支持多重继承机制。 同时基类与派生类也是一个成对的概念,一个孤立的类即不可能是基类也不可能是派生类。 8.2 使用继承机制 8.2.1 基类和派生类 C#中继承的语法格式如下: [访问修饰符] class 派生类名称 : 基类名称 C#语言的继承机制除了要遵守上述语法规范外,还有如下规则: 派生类应当被看作是基类所具有的特性与功能的继承与扩展,而不是简单的派生类“大于”基类; 派生类不能“选择性”的继承基类的属性与方法,必须继承基类的所有特性与方法; 派生类可以在继承基类的基础上自由定义自己特有的成员; 基类的构造方法与析构方法不能被派生类继承,除此之外的其他成员都能被继承,基类成员的访问方式不影响他们成为派生类的成员; 派生类中继承的基类成员和基类中的成员只是相同,并非同一个成员。 8.2 使用继承机制 8.2.2 base关键字与在派生类中访问基类成员 继承机制并不能使派生类具有基类的构造方法与析构方法,要想通过访问基类的构造方法为派生类中的基类子对象进行初始化则需要通过base关键字。 在派生类中使用base关键字即可指代当前类的父类,但只限于构造函数、实例方法和实例属性访问器中使用,如: public void GetInfo() { //利用base关键字调用基类Person的Display方法 base.Display(); Console.WriteLine(ID: {0},this.id); } 8.2 使用继承机制 8.2.3 方法的继承与virtual、override及new关键字 使用virtual关键字修饰的方法称为是虚方法,在一个类中如果某个方法需要被派生类继承,并且需要在派生类中修改方法的内容时可将该方法定义为虚方法。在派生类中如果需要重写该方法,可在派生类中定义同名的方法,其前加上override关键字修饰。 在派生类中对虚方法使用override修饰后,基类中的该方法在派生类中将被屏蔽,不会存在两个Display方法从而构成重载关系。 如果没有virtual及override关键字分别对基类和派生类中的同名方法进行修饰同样也能输出正确的结果,但编译器给出一个警告,为了能在派生类中定义与基类同名的方法同时新方法又能具有不同的功能,C#引入了new关键字 8.2 使用继承机制 8.2.3 方法的继承与virtual、override及new关键字 new关键字用来修饰一个方法,即在派生类中重写该方法,该类的基类也具有一个同名的方法,但二者仅名称一样而已,并无什么关联,在派生类中使用该方法名调用的是派生类中自定义的方法,基类的方法只能通过“base.方法名”来调用。 由此可见,使用new修饰符也能实现相同的方法名,在基类和派生类中分别实现不同功能的目的,那定义virtual关键字的意义何在呢?虚方法的作用体现在由派生类对象为基类的引用赋值时。请参考一下示例: 8.2 使用继承机制 8.2.3 方法的继承与virtual、override及new关键字 class Parent { public void F() //定义非虚方法 { Console.WriteLine(基类的F方法被调用); } public virtual void G() //定义虚方法 { Console.WriteLine(基类的G方法被调用); } } class Child:
您可能关注的文档
- Verilog HDL数字系统设计——原理、实例及仿真 作者 康磊 第8-13章 第12章.ppt
- Verilog HDL数字系统设计——原理、实例及仿真 作者 康磊 第8-13章 第13章.ppt
- VFP程序设计简明教程 作者 鲁俊生 第1-6章 第2章 常量、变量、表达式及函数.ppt
- VFP程序设计简明教程 作者 鲁俊生 第1-6章 第3章 表的基本操作.ppt
- VFP程序设计简明教程 作者 鲁俊生 第1-6章 第4章 程序设计基础.ppt
- VFP程序设计简明教程 作者 鲁俊生 第1-6章 第5章 面向对象程序设计基础.ppt
- VFP程序设计简明教程 作者 鲁俊生 第7-10章 第8章 设计完美的报表和标签.ppt
- VFP程序设计简明教程 作者 鲁俊生 第7-10章 第10章 项目管理器.ppt
- VHDL复杂数字系统设计 作者 金西 第6-8章 第6章.ppt
- VHDL复杂数字系统设计 作者 金西 第6-8章 第7章.ppt
- (2026春新版)部编版八年级语文下册《第一单元》PPT课件.pptx
- 2018电力监控系统网络安全监测装置技术规范.docx
- 2022电力监控系统安全防护方案审核要点.docx
- 2014电力电缆光伏系统EN 50618欧标.docx
- (2026春新版)人教版二年级数学下册《第三单元 万以内数的认识》教案.docx
- (2026春新版)人教版二年级数学下册《第四单元 万以内的加法和减法》教案.docx
- (2026春新版)人教版二年级数学下册《综合与实践 时间在哪里》教案.docx
- (2026春新版)苏教版二年级数学下册《综合与实践 时间有多长》教案 .pdf
- (2026春新版)部编版三年级语文下册第3单元(教案).docx
- (2026春新版)部编版三年级语文下册第8单元(教案).docx
最近下载
- Dräger德图呼吸机Oxylog 3000 plus用户手册.pdf
- 零售业销售数据分析方法与应用.docx VIP
- 会计信息系统:财务篇 教案全套 宋红尔 第1--9章 系统管理---UFO报表.docx
- 个体化音乐干预减轻腹腔镜手术病人术前焦虑的研究.pdf VIP
- 精品解析:黑龙江省哈尔滨市德强高级中学2023-2024学年高一下学期开学验收考试数学试题(解析版).docx VIP
- GB50108–2024《地下工程防水技术规范》.pptx VIP
- 2023年上海初三语文一模试题说明文阅读汇编含答案.doc VIP
- 2025年福建省中考物理试卷(附答案解析).docx VIP
- Specialized English for Medical Imaging Technology医学影像 技术专业英语.pptx VIP
- 改建工程路面结构设计毕业设计.doc VIP
原创力文档

文档评论(0)