电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > PPT文档下载
分享到微信 分享到微博 分享到QQ空间

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

  • 资源ID:89184195       资源大小:108KB        全文页数:25页
  • 资源格式: PPT        下载积分:10金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要10金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

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

第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 类的继承 当一个类从另一个类派生出来时,派生类就自然具有了基类数据成员、属性成员和方法成员等,基类定义中这些成员的代码,已不需要在派生类定义中重写,在派生类的定义中,只需书写基类定义中所不具有的代码即可。这样,既提高了代码的重用性,从而提高程序设计的效率;又为程序设计中的特别需要提供了编写代码的自由空间,从而提供了已有程序设计成果的可扩展性。,章节目录,上一页,下一页,在C#中,类的继承遵循以下规则: 派生类只能继承于一个基类。 派生类自然继承基类的成员,但不能继承基类的构造函数成员。 类的继承可以传递。例如,假设C类继承B类,B类又继承A类,那么C类即具有了B类与A类的成员。在C#中,Object类是所有类的基类,也就是说所有的类都具有Object类的成员。 派生类是对基类的扩展,派生类定义中可以声明新的成员,但不能消除已继承的基类成员。 基类中的成员声明时,不管其是什么访问控制方式,总能被派生类继承,访问控制的不同只决定派生类成员是否能够访问基类成员。 派生类定义中如果声明了与基类同名的成员,则基类的同名成员将被覆盖,从而使派生类不能直接访问同名的基类的成员。 基类可以定义虚方法成员等,这样派生类能够重载这些成员以表现类的多态性。,章节目录,上一页,下一页,7.1.2 定义派生类 1. 派生类定义格式 派生类通常定义的语法格式为: pulbic class 派生类名称 : 基类名称类体 public:访问控制修饰符,访问控制修饰符可以是public、protected和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 class 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.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; / 设置派生类对象值 / 输出派生类对象信息 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#中有一种类叫密封类,密封类是不允许其他类继承的类。 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#允许在基类与派生类中声明具有同名的方法,而且同名的方法可以有不同的代码,也就是说在基类与派生类的相同功能中可以有不同的具体实现,从而为解决同一问题提供多种途径。 多态性就是指在程序运行时,执行的虽然是一个调用方法的语句,却可以根据派生类对象的类型不同完成方法的不同的具体实现。 在C#中可以通过多种途径实现多态性。,章节目录,上一页,下一页,7.2.2 虚方法 1. 声明与基类同名的派生类方法 在派生类中用new关键字声明与基类同名的方法的格式如下: public new 方法名称(参数列表) 2. 声明虚方法 基类中的声明格式: public virtual 方法名称(参数列表) 派生类中的声明格式: public override 方法名称(参数列表) ,章节目录,上一页,下一页,要实现多态性,通常是在基类与派生类定义之外再定义一个含基类对象形参的方法 。多态性的关键就在该方法中的形参对象在程序运行前根本就不知道是什么类型的对象,要一直到程序运行时,该方法被调用,接受了对象参数,才会知道是什么类型的对象。因为基类对象不仅可以接受本类型的对象实参,也可以接受其派生类类型或派生类的派生类类型的实参,并且可以根据接受的对象类型不同调用相应类定义中的方法,从而实现多态性。,章节目录,上一页,下一页,3. 调用基类方法 在派生类中声明与基类同名的方法,也叫方法重载。在派生类重载基类方法后,如果想调用基类的同名方法,可以使用base关键字。例如,假定基类与派生类都有一个无参数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****)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.