- 1、本文档共69页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章-继承与多态性.ppt
第6章 继承和多态性 本章介绍了面向对象中比较重要的两个概念——继承和多态性。重点介绍了继承的基本方法,基类构造函数的调用,继承成员的隐藏,虚方法与方法重写的概念,抽象方法与抽象类的概念,接口的概念等。 6.1 类的继承 类的继承性,指的是在定义类时,不需要重新编写代码,就能够包含另一个类定义的字段、属性、方法等成员,这种在一个类的基础上,建立新的类的过程,叫做继承。被继承的类叫做基类或父类,继承得到的新类叫做派生类或子类。 6.1 类的继承 6.1.1 继承的基本概念 6.1.2 调用基类构造函数 6.1.3 继承成员的隐藏 6.1.1 继承的基本概念 任务6.1 基类与派生类 创建Windows应用程序,定义Person类,并让Student类继承Person类,让Sudent类的实例调用基类方法和自身定义的方法来显示信息,如图6-1所示。 6.1.1 继承的基本概念 任务6.1 任务实施 (一)创建窗体 (1)创建一个“Windows应用程序”项目。 (2)向窗体上添加一个标签框,两个命令按钮,界面布局如图6-2所示,控件属性参数如表6-1所示。 6.1.1 继承的基本概念 任务6.1 任务实施 (二)代码的编写 (1)按F7打开代码视图,在程序代码最后一个右大括号“}”的上方,定义基类Person的代码 (2)在Person类的后面,最后一个右大括号的上方,定义学生类Student的代码 (3)在窗体Form1的类中,声明一个Sudent类型的字段: private Student stu; (4)双击Form1窗体,添加窗体载入事件Form_Load事件代码 (5)在设计窗口中的Form1窗体的【显示基本信息】按钮上双击,为【显示基本信息】按钮添加Click单击事件代码 (6)在设计窗口中的Form1窗体的【显示详细信息】按钮上双击,为【显示详细信息】按钮添加Click单击事件代码 6.1.1 继承的基本概念 任务6.1 任务实施 (三)程序的运行 按下F5键运行该应用程序,单击【显示基本信息】,在标签框中显示学生的基本信息(身份证号、姓名、性别),单击【显示详细信息】显示学生的详细新信息(身份证号、姓名、性别、学号、主修专业),如图6-1所示。 6.1.1 继承的基本概念 任务6.1 支撑知识 (一)派生类的声明 声明一个派生类,跟声明一个一般类的格式是一样的,唯一的不同点就是声明时必须使用“:”指定其继承的基类,派生类声明的一般格式为: public class 派生类名称 : 基类名称 {类体} public可以省略,类定义的默认访问类型就是公有型。 6.1.1 继承的基本概念 任务6.1 支撑知识 (二)成员的访问 派生类不能继承基类中的构造函数、静态构造函数以及析构函数,其他的基类成员都被派生类继承。但是并不是说所有的基类成员,派生类对象都可以随便访问,这取决于这些成员被声明时的访问修饰符。 ? public——访问该成员不受限制。 ? protected——访问该成员仅限于其所包含于的类或该类的派生类,即派生类可以访问基类中的protected成员。 ? private——访问该成员仅限于其所包含于的类,即派生类不能直接访问基类的private成员。 6.1.1 继承的基本概念 任务6.1 支撑知识 (三)派生类的构造函数 派生类默认的构造函数只是调用基类的无参数构造函数。如果基类中没有可访问的无参数构造函数,则发生编译时错误,所以在Person类中,需要显式声明一个无参数的构造函数: public Person() { } 6.1.2 调用基类构造函数 在创建派生类对象时,系统将先调用基类的构造函数,完成基类部分字段的初始化,然后再调用派生类的构造函数,完成派生类自身字段的初始化。 如果派生类中没有声明构造函数,那么系统会给它一个默认构造函数,该默认构造函数完成的功能就是直接调用其基类的无参数构造函数,此时如果基类中没有无参数构造函数,编译就会出错。 要在派生类中直接调用基类的构造函数,可以通过base关键字指定调用的基类构造函数。 6.1.2 调用基类构造函数 任务6.2 为任务6.1的派生类Student创建构造函数 任务6.1中的派生类Student没有构造函数,系统默认调用基类Person中的无参数构造函数,没有初始化任何一个字段,用显式调用基类构造函数的方法来给派生类Student创建构造函数。本任务提供了两种修改方法。 6.1.2 调用基类构造函数 任务6.2 任务实施 (一)创建项目和窗体 (二)代码的编写 (1)法1:打开任务6.1的项目,为Student类添加下构造函数: 6.1.2 调用基类构造函数 任务6.2 任务实施 (二)代码的编写
文档评论(0)