已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大理学院课程教案(教学要求)大理学院课程教案(理论教学)课程名称:C#面向对象程序设计 课程类型:( 1 )1、必修;2、选修;3、其它授课对象:计算机科学与技术 专业(本科) 2010 级 1 班授课时间: 2011 至 2012 学年 三 学期 计划学时: 72学时(其中:理论 36 ,实验:36 )任课教师: 杜英国 所属学院: 数计学院 课程管理部门(教研室): 软件教研室 大理学院教务处 制第9页大理学院课程教案(教学内容)课程名称:C#面向对象程序设计教 材:C#程序设计实用教程 清华大学出版社 ,黄兴荣 编著,2009年第1版讲 授 人:杜英国 专业技术职务:讲师学 历:研究生 学 位:硕士讲授题目:第6章 抽象类、多态和接口所属章节:第6章 计划学时:2教学目的和要求: 掌握:抽象类概念、抽象类定义、接口概念、接口定义熟悉:多态和重载了解:多态实现、接口实现教学重点:抽象类概念、抽象类定义、接口概念、接口定义、多态和重载教学难点:多态和重载教学方法:课堂讲授使用教具:多媒体系统思 考 题: 1.名词解释。 抽象类 多态 重载 接口 参考资料:1 C#编程思想,嘉木工作室,机械工业出版社,20032 VISUAL C# 2005从入门到精通:(英)JOHN SHARP著,清华大学版社第六章抽象类、多态和接口( 2学时)6.1 抽象类6.1.1 什么是抽象类 现实中,存在如图6-1所示的对象及关系,父类“运动员”有3个子类,这3个子类都可以继承父类的“训练”这个方法,但是,仔细考虑下,父类“运动员”的训练该如何实现呢? 此时,不难发现,这个方法实际上没有办法具体实现,因为无法用统一的训练方法去针对所有不同的子类运动员。毕竟,不同的运动员有不同的训练方法。可见,在“运动员”类中,“训练”只是一个纸上谈兵的方法,是一个“虚拟”的方法。 那么,是不是可以把这个方法从运动员中间去掉呢?事实上,“训练”的存在是有其意义的,它规定了所有的子类运动员都要有“训练”这个方法。所以,这个“虚拟”方法也并不是全无用处,可以为其子类设置一个必须包含的方法。 在此,我们把“训练”这个方法称为“抽象方法”,把“运动员”这个父类称为“抽象类”。6.1.2 声明抽象类 现在来看抽象方法和抽象类如何在C#中实现。 .在C#中,使用关键字abstract来定义抽象方法(abstract method),并需要把abstract关键字放在访问级别修饰符和方法返回数据类型之前,没有方法实现的部分,格式如下:public abstract void Train();.子类继承抽象父类之后,可以使用override关键字覆盖父类中的抽象方法,并做具体的实现,格式如下: public override void Train() 另外,子类也可以不实现抽象方法,继续留给其后代实现,这时子类仍旧是一个抽象类。下面的代码分别实现3个子类运动员的抽象方法Train()。/ / 足球运动员/ public class FootballPlayer : Playerpublic override void Train()Console.WriteLine(Football players are training.);/ / 游泳运动员/ public class SwimPlayer : Playerpublic override void Train()Console.WriteLine(Swim players are training.);/ / 短跑运动员/ public class Sprinters : Player public override void Train() Console.WriteLine(Sprinters are training.); 说明:以上的足球运动员类继承了运动员类,并实现了其父类中的抽象方法Train()。其余两个子类与此相同,不再赘述。6.2 多态性 在上一节对于抽象类的概念进行介绍,与抽象类紧密相关的一个面向对象机制是多态。 从字面上可知,多态即表示多种形态,那什么是类的多种形态呢?它有什么用处?本节将对其进行探讨。 继续上一节给出的例子,现在假设你是一个运动员总教练,手下有足球、游泳、短跑运动员。你把运动员召集起来之后,如果你是只是对他们说“去训练吧!”,那么他们会怎样做呢? 很显然,不同项目的运动员会去做不同的训练。对于总教练而言,只需要告诉他们的统一的指令即可。在面向对象的思想中,这称为多态(Polymorphism)。 多态就是父类定义的抽象方法,在子类对其进行实现之后,C#允许将子类赋值给父类,然后在父类中,通过调用抽象方法来实现子类具体的功能。 在上一节的示例中,“运动员”包含一个抽象方法“训练”,在其子类对“训练”进行了实现之后,C#允许下面的赋值表达式: Player p=new FootballPlay(); 这样,就实现把一个子类对象赋值给了父类的一个对象,然后,可以利用父类对象调用其抽象函数。 p.Train(); 这样,该运动员对象就会根据自己所从事的项目去做相应的训练。【例6-2】抽象类、抽象方法和多态的实现。using System;namespace Example_AbstractClass/ / 抽象类:运动员/ public abstract class Player/ / 抽象方法:训练/ public abstract void Train();/ / 足球运动员/ public class FootballPlayer : Playerpublic override void Train()Console.WriteLine(Football players are training.);/ / 短跑运动员 / public class Sprinters : Player public override void Train() Console.WriteLine(Sprinters are training.); / / Class1 的摘要说明。/ class MainTest/ / 应用程序的主入口点。/ STAThreadstatic void Main(string args)Player p; p=new FootballPlayer();p.Train();p=new SwimPlayer();p.Train(); p = new Sprinters(); p.Train(); 说明:代码声明了一个运动员对象p,然后对其赋值为足球运动员,并调用Train()方法让其训练;同样,再使其成为一个游泳运动员,同样使用Train()方法让其训练。只看“p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年河南地矿职业学院单招职业倾向性测试必刷测试卷必考题
- 2026年川北幼儿师范高等专科学校单招职业倾向性考试题库新版
- 2026年西安海棠职业学院单招职业适应性考试题库新版
- 2026年淮南师范学院单招职业技能测试必刷测试卷附答案
- 2026年重庆工贸职业技术学院单招职业适应性测试必刷测试卷新版
- 康复医学科中风病康复训练教程
- 2026年郑州工业安全职业学院单招综合素质考试题库必考题
- 2026年岳阳职业技术学院单招职业倾向性考试题库新版
- 2026年广州工程技术职业学院单招职业倾向性考试必刷测试卷附答案
- 2026年西南交通大学希望学院单招职业适应性考试题库必考题
- 收费站消防安全知识培训
- 《医学美容技术》课件-实训3:二氧化碳激光祛赘生物技术
- 2025信阳辅警考试题库
- 博士组合物使用指南
- 绿色防控培训
- 麻醉专业医疗质量控制指标解读
- 护理不良事件及法律法规
- 2025年贵州盐业集团有限责任公司招聘笔试参考题库含答案解析
- 《消防检查指导手册》(2024版)
- 隧道渗水、漏水、排水处治方案
- 《保障农民工工资支付条例》五项制度特别解读
评论
0/150
提交评论