- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六章抽象类和接口回顾子类可以继承父类的非私有成员不能继承父类的构造方法,子类构造方法会自动调用父类构造方法,并且父类构造方法先执行,再执行子类构造方法。使用base关键字显示调用父类构造方法。base关键字还可以访问父类成员protected访问修饰符修饰的成员可以被子类和本身访问,其他类访问不了密封类,sealed关键字修饰的类,表示不能被其他类继承。多态是指二个或多个不同的类,对同一方法的不同代码实现virtual、override关键字,子类重写父类的虚方法父类对象可以引用子类实例,并且调用子类重写的方法本章目标理解抽象类理解接口的用途和编写方法接口作为参数的作用接口和抽象类的区别抽象类和抽象方法3-1一个没有实现的方法abstract class Person{ public abstract void SayHi();}抽象方法 有抽象方法的类必然是抽象类抽象类用来列举一个类所需要的行为抽象类不明确提供具体实现方法抽象类必须由其子类实现它的抽象方法(除非子类也具有抽象性)抽象类和抽象方法3-2访问修饰符abstract class ClassOne{ //类实现}不能实例化派生类的基类抽象类和抽象方法3-3abstract class Base{ // 成员变量 int basevar; // 成员函数abstract void base_fun1(parameters); // 无法实现 …….}抽象类派生类提供class Derived : Base{ // 成员变量 int derivedvars; // 成员函数override void Base_fun1(parameters){ // 实际实现 ...}重写方法抽象方法原型必须重写 实现抽象方法使用override实现抽象方法public override void SayHi(){ //…具体实现内容}实现抽象方法重写 抽象类示例using System;namespace Example_5{abstract class ABC{ public abstract void AFunc(); public void BFunc() { Console.WriteLine(“这是一个非抽象方法!); }}class Derv : ABC{ public override void AFunc() { Console.WriteLine(“这是一个抽象方法! ); }}抽象类 – 不能实例化派生类 – 重写方法static void Main(string[] args) { Derv objB = new Derv(); objB.AFunc(); objB.BFunc();}演示抽象类示例abstract class MyAbs{ public abstract void AbMethod();}//派生类class MyClass : MyAbs{ public override void AbMethod() { Console.WriteLine(“在 MyClass 中实现的抽象方法); }}//派生自 MyClass 的子类class SubMyClass:MyClass{ public void General() { //未实现 AbMethod 抽象方法 Console.WriteLine(在 SubMyClass 中未实现的抽象方法 ); }}static void Main(string[] args){ SubMyClass objSubClass = new SubMyClass(); objSubClass.General();}里氏替换原则//…Student stu1 = new Student();Student stu2 = new Student();ListPerson person = new ListPerson();person.Add(stu1);person.Add(stu2);//…子类对象可以替换父类子类的对象能够替换其父类父类对象不能够替换子类父类的方法都要在子类中实现或者重写里氏替换原则(LSP) is与as操作符is 检查对象是否与指定类型兼容if (person[i] is Student)判断person集合的元素是否是Student对象as 用于在兼容的引用类型之间执行转换 for (int i = 0; i Students.Count; i++){ Student stu = Students[i] as Student; Console.WriteLine(stu.Name);}一种类型转换方式转换失败返回值为空虚方法抽象方法用 virtual 修饰用 ab
您可能关注的文档
- Linux基础教程(第3版) 第8章 中文环境.ppt
- Linux基础教程(第3版) 第11章 用户管理.ppt
- Linux基础教程(第3版) 第12章 系统监控与备份.ppt
- Linux基础教程(第3版) 第14章 资源共享.ppt
- Linux基础教程(第3版) 第15章 内核升级.ppt
- Linux基础教程(第3版) 第16章 设备管理.ppt
- Linux基础教程(第3版) 第20章 远程系统管理.ppt
- Linux基础教程(第3版)第1章 Red Hat Linux简介.ppt
- Linux基础教程(第3版)第4章 Gnome和KDE图形环境.ppt
- Linux基础教程(第3版)第9章 常用命令介绍.ppt
- 小学数学课堂人工智能教学实践与评价体系构建教学研究课题报告.docx
- 高中物理实验课教学中的学生合作学习模式探讨教学研究课题报告.docx
- 高中数学实验教学中的实验资源开发与利用研究教学研究课题报告.docx
- 《绿色交通基础设施建设对城市空气质量改善的短期效应评估》教学研究课题报告.docx
- 初中英语语法教学中的跨学科教学与学生应用能力培养研究教学研究课题报告.docx
- 高中数学思维训练教学资源动态定价与优化配置策略研究教学研究课题报告.docx
- 金融科技监管中的金融科技企业合规性监管政策优化研究教学研究课题报告.docx
- 《量子通信技术在金融信息安全传输中的性能优化研究》教学研究课题报告.docx
- 小学课外阅读指导课程效果评价研究教学研究课题报告.docx
- 基于人工智能的小学科学智能教育平台用户科学探究能力培养策略教学研究课题报告.docx
最近下载
- 2025年小升初语文《理解句子的含义》教学讲义及练习题(附答案).pdf VIP
- 个人简历——【标准模板】.doc VIP
- AKAI EWI5000 快速入门说明书(中文).pdf
- ICU患者镇痛镇静及谵妄评估.pptx VIP
- 四大名著介绍PPT课件.pptx VIP
- 2025初中历史教师课程标准考试模拟试卷附参考答案.docx VIP
- 浙江省名校协作体2023-2024学年高二上学期开学适应性考试物理试题含答案.pdf VIP
- 2025湖南常德市纪委监委直属事业单位选调6人笔试备考试题及答案解析.docx VIP
- 漏液传感器NIDEC 简明说明书.pdf VIP
- 2025中国银行软件中心社会招聘笔试历年参考题库附带答案详解.pdf
文档评论(0)