电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

Visual C#2005程序设计教程 教学课件 ppt 作者 崔淼 陈明非 第7章 继承

25页
  • 卖家[上传人]:E****
  • 文档编号:89184195
  • 上传时间:2019-05-20
  • 文档格式:PPT
  • 文档大小:108KB
  • / 25 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第1章 Visual C#概述 第2章 C#语法基础 第3章 顺序结构程序设计 第4章 选择结构程序设计 第5章 循环结构程序设计 第6章 面向对象编程技术 第7章 继承,第8章 数组与自定义类型 第9章 菜单、工具栏与状态栏 第10章 鼠标键盘事件 第11章 ActiveX控件 第12章 数据库技术 第13章 开发Web应用程序 第14章 异常处理与部署应用程序,下一页,Visual C# 2005程序设计,上一页,章节目录,上一页,下一页,第7章 继 承 7.1 类的继承性 类的继承性是指一个类定义既可以具有其他类的数据成员、属性成员、方法成员等,也可以使其他类具有自己的数据成员、属性成员、方法成员等。 在类的继承中,被继承的类叫基类或父类,继承的类叫派生类或子类。,章节目录,上一页,下一页,7.1.1 类的继承 当一个类从另一个类派生出来时,派生类就自然具有了基类数据成员、属性成员和方法成员等,基类定义中这些成员的代码,已不需要在派生类定义中重写,在派生类的定义中,只需书写基类定义中所不具有的代码即可。这样,既提高了代码的重用性,从而提高程序设计的效率;又为程序设计中的特别需要提

      2、供了编写代码的自由空间,从而提供了已有程序设计成果的可扩展性。,章节目录,上一页,下一页,在C#中,类的继承遵循以下规则: 派生类只能继承于一个基类。 派生类自然继承基类的成员,但不能继承基类的构造函数成员。 类的继承可以传递。例如,假设C类继承B类,B类又继承A类,那么C类即具有了B类与A类的成员。在C#中,Object类是所有类的基类,也就是说所有的类都具有Object类的成员。 派生类是对基类的扩展,派生类定义中可以声明新的成员,但不能消除已继承的基类成员。 基类中的成员声明时,不管其是什么访问控制方式,总能被派生类继承,访问控制的不同只决定派生类成员是否能够访问基类成员。 派生类定义中如果声明了与基类同名的成员,则基类的同名成员将被覆盖,从而使派生类不能直接访问同名的基类的成员。 基类可以定义虚方法成员等,这样派生类能够重载这些成员以表现类的多态性。,章节目录,上一页,下一页,7.1.2 定义派生类 1. 派生类定义格式 派生类通常定义的语法格式为: pulbic class 派生类名称 : 基类名称类体 public:访问控制修饰符,访问控制修饰符可以是public、prot

      3、ected和private。通常都使用public以保证类的开放性,并且public可以省略,因为类定义的访问控制默认为是pulbic。 “:基类名称”:表示所继承的类。,章节目录,上一页,下一页,长方体类作为基类定义如下: public class Cuboid / 声明字段 private double length; private double width; private double high;,章节目录,上一页,下一页,/ 声明属性 public double Length get return length; set length = value; public double Width get return width; set width = value; public double High get return high; set high = value; / 声明计算体积的方法 public double CuboidCubage() return length * width * high; ,章节目录,上一页,下一页,派生类定义如下: public cl

      4、ass Cube : Cuboid public double CubeCubage() / 注意这里使用的是基类定义中的公有成员 return Length * Length * Length; ,章节目录,上一页,下一页,2. protected访问修饰符的作用 根据面向对象程序设计封装性要求,类中的数据成员通常是不允许直接访问的,因此数据成员一般不使用public修饰符,而使用protected或private修饰符,使对数据成员的访问必须通过public的属性或方法实现。在类的继承中,作为基类的数据成员通常使用protected修饰符,而不使用private修饰符。因为如果在基类中使用private修饰符声明数据成员,则其成员将不允许派生类成员访问,而protected修饰符,既能保证数据成员不被直接访问,又允许其派生类成员访问。,章节目录,上一页,下一页,3. 声明派生类对象 基类与派生类定义完成后,用派生类声明的对象,将包含基类的成员(除了构造函数),因此,派生类对象可以直接访问基类成员。例如: Cube cube = new Cube(); / 声明派生类对象 cube.

      5、Length = 15; / 设置派生类继承的基类数据成员值,章节目录,上一页,下一页,【例8-1】创建Windows应用程序,在程序中比照前述内容定义基类Cuboid与派生类Cube,创建并显示基类与派生类对象的信息。,章节目录,上一页,下一页,窗体的Load事件代码为: private void Form1_Load(object sender, EventArgs e) / 声明基类对象 Cuboid cuboid = new Cuboid(); / 设置基类对象值 cuboid.Length = 8; cuboid.Width = 5; cuboid.High = 3;,章节目录,上一页,下一页,/ 输出基类对象信息 label1.Text = “长方体的长宽高为:” + cuboid.Length + “ “ + cuboid.Width +“ “+cuboid.High +“n长方体的体积为:” +cuboid.CuboidCubage( ); Cube cube = new Cube(); / 声明派生类对象 cube.Length = 15; / 设置派生类对象值 /

      6、输出派生类对象信息 label1.Text += “n正方体的棱长为:” + cube.Length +“n正方体的体积为:” +cube.CubeCubage( ); ,章节目录,上一页,下一页,4. 构造函数的调用 在创建派生类对象时,调用构造函数的顺序是先调用基类构造函数,再调用派生类的构造函数,以完成为数据成员分配内存空间并进行初始化的工作。 如果派生类的基类本身是另一个类的派生类,则构造函数的调用次序按由高到低顺序依次调用。例如,假设A类是B类的基类,B类是C类的基类,则创建C类对象时,调用构造函数的顺序为,先调用A类的构造函数,再调用B类的构造函数,最后调用C类的构造函数。,章节目录,上一页,下一页,5. 向基类构造函数传递参数 向基类构造函数传递参数,必须通过派生类的构造函数实现,其格式如下: public 派生类构造函数名(形参列表):base(向基类构造函数传递的实参列表) “base”是C#关键字,表示调用基类的有参构造函数。 传递给基类构造函数的“实参列表”通常包含在派生类构造函数的“形参列表”中。,章节目录,上一页,下一页,7.1.3 密封类 C#中有一种类叫密

      7、封类,密封类是不允许其他类继承的类。 Convert类就是一个密封类。 定义密封类需要使用sealed关键字,其格式为: 访问修饰符 sealed class 类名称 例如: public sealed class SealedClass public string method( ) return “我是密封类“; ,章节目录,上一页,下一页,C#还允许将一个非密封类定义中的某个方法声明为密封方法。一旦方法被声明为密封方法,将不允许在派生类中重载该方法。关于派生类中重载基类方法,将在下节多态性中介绍。例如: public class SealedMethod public sealed string SMethod( ) return “我是一个密封方法“; ,章节目录,上一页,下一页,7.2 多态性 7.2.1 多态性概述 在类的继承中,C#允许在基类与派生类中声明具有同名的方法,而且同名的方法可以有不同的代码,也就是说在基类与派生类的相同功能中可以有不同的具体实现,从而为解决同一问题提供多种途径。 多态性就是指在程序运行时,执行的虽然是一个调用方法的语句,却可以根据派生类对象的类

      8、型不同完成方法的不同的具体实现。 在C#中可以通过多种途径实现多态性。,章节目录,上一页,下一页,7.2.2 虚方法 1. 声明与基类同名的派生类方法 在派生类中用new关键字声明与基类同名的方法的格式如下: public new 方法名称(参数列表) 2. 声明虚方法 基类中的声明格式: public virtual 方法名称(参数列表) 派生类中的声明格式: public override 方法名称(参数列表) ,章节目录,上一页,下一页,要实现多态性,通常是在基类与派生类定义之外再定义一个含基类对象形参的方法 。多态性的关键就在该方法中的形参对象在程序运行前根本就不知道是什么类型的对象,要一直到程序运行时,该方法被调用,接受了对象参数,才会知道是什么类型的对象。因为基类对象不仅可以接受本类型的对象实参,也可以接受其派生类类型或派生类的派生类类型的实参,并且可以根据接受的对象类型不同调用相应类定义中的方法,从而实现多态性。,章节目录,上一页,下一页,3. 调用基类方法 在派生类中声明与基类同名的方法,也叫方法重载。在派生类重载基类方法后,如果想调用基类的同名方法,可以使用base关

      9、键字。例如,假定基类与派生类都有一个无参数Show方法。则在派生类中调用基类Show方法的代码为: base Show( ); / 调用基类Show方法,章节目录,上一页,下一页,7.2.3 抽象类与抽象方法 为了实现多态,必须在基类中声明虚方法,但有时基类中声明的虚方法无法实现具体的功能。这时需要在基类中声明抽象方法 抽象类是指基类的定义中声明不包含任何实现代码的方法,实际上就是一个不具有任何具体功能的方法。这样的方法唯一的作用就是让派生类重写。 在基类定义中,只要类体中包含一个抽象方法,该类即为抽象类。在抽象类中也可以声明一般的虚方法。,章节目录,上一页,下一页,1. 声明抽象类与抽象方法 声明抽象类与抽象方法均需使用关键字abstract,其格式为: public abstract class 类名称 public abstract 返回类型 方法名称(参数列表); 抽象方法不是一般的空方法,抽象方法声明时,没有方法体,只有方法头后跟一个分号。,章节目录,上一页,下一页,2. 重载抽象方法 当定义抽象类的派生类时,派生类自然从抽象类继承抽象方法成员,并且必须重写(重载)抽象类的抽象方法,这是抽象方法与虚方法的不同,因为对于基类的虚方法,其派生类可以不必重写(重载)。重载抽象类方法必须使用override关键字。 重载抽象方法的格式为: pulbic override 返回类型 方法名称(参数列表) . 其中,方法名称与参数列表必须与抽象类中的抽象方法完全一致。,章节目录,上一页,下一页,AAA,

      《Visual C#2005程序设计教程 教学课件 ppt 作者 崔淼 陈明非 第7章 继承》由会员E****分享,可在线阅读,更多相关《Visual C#2005程序设计教程 教学课件 ppt 作者 崔淼 陈明非 第7章 继承》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.