教学课件第9章 继承.ppt

上传人:春哥&#****71; 文档编号:12723731 上传时间:2022-04-25 格式:PPT 页数:21 大小:397.50KB
返回 下载 相关 举报
教学课件第9章 继承.ppt_第1页
第1页 / 共21页
教学课件第9章 继承.ppt_第2页
第2页 / 共21页
点击查看更多>>
资源描述

《教学课件第9章 继承.ppt》由会员分享,可在线阅读,更多相关《教学课件第9章 继承.ppt(21页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、C#程序设计案例教程程序设计案例教程第第9章章 继承继承 第第9章章 继承继承 学习目标学习目标了解类的继承性。了解类的继承性。掌握继承的使用。掌握继承的使用。掌握如何隐藏基类成员。掌握如何隐藏基类成员。第第9章章 继承继承 9.1 类的继承性类的继承性9.1.1继承继承的的概念概念在面向对象程序设计中,为了有效地描述现实生活中的在面向对象程序设计中,为了有效地描述现实生活中的事物关系,引入了类的继承性。继承就是在已有类的基事物关系,引入了类的继承性。继承就是在已有类的基础上创建新类,使新类的部分或全部继承已有类的成员础上创建新类,使新类的部分或全部继承已有类的成员在继承中,通过继承已有的一个

2、或多个类而产生的一个在继承中,通过继承已有的一个或多个类而产生的一个新类称为新类称为派生类派生类(或子类),被继承的类称为(或子类),被继承的类称为基类基类(或父类)。通过继承可以共享特性和操作,从而高效地或父类)。通过继承可以共享特性和操作,从而高效地重用代码。重用代码。第第9章章 继承继承 举例说明举例说明 现有三个类,分别是动物、狗和马。狗和马都是动物,所现有三个类,分别是动物、狗和马。狗和马都是动物,所以狗和马可以看成是动物的派生类,动物可以看成是马和狗以狗和马可以看成是动物的派生类,动物可以看成是马和狗的基类。我们可以通过层次结构图来直观地表示上述类之间的基类。我们可以通过层次结构图

3、来直观地表示上述类之间的类系。的类系。 动物狗马基类派生派生类派生类第第9章章 继承继承 9.1.2 继承继承的工作机制的工作机制 从基类派生出一个新类的语法格式如下:从基类派生出一个新类的语法格式如下: class 派生类名派生类名:基类名基类名 /派生类代码派生类代码 其中,其中,“:”表示派生的意思,表示派生的意思,“:”的前面是派生类的名字,后面的前面是派生类的名字,后面是基类的名字。是基类的名字。说明:说明:(1)在)在C#中不允许多重继承,只允许继承自一个基类。中不允许多重继承,只允许继承自一个基类。(2)在)在C#中通过继承,子类将拥有父类除构造函数和析构函数以外的所有成员。中通

4、过继承,子类将拥有父类除构造函数和析构函数以外的所有成员。第第9章章 继承继承 9.2 继承继承 【课堂案例课堂案例9-1】在学生成绩管理系统中,有两种学生类型:学生和学生在学生成绩管理系统中,有两种学生类型:学生和学生干部。他们具有共同特征:学号、姓名、出生年月、性别、入学时间、干部。他们具有共同特征:学号、姓名、出生年月、性别、入学时间、所在班级、住址、联系电话、手机、备注。此外,学生干部还具有职所在班级、住址、联系电话、手机、备注。此外,学生干部还具有职务名称以及工作部门信息。请用继承编写程序,完成学生的资料接收务名称以及工作部门信息。请用继承编写程序,完成学生的资料接收和显示功能。和显

5、示功能。【案例学习目标案例学习目标】掌握基类和派生类的定义掌握基类和派生类的定义 掌握基类和派生类的使用掌握基类和派生类的使用 【案例知识要点案例知识要点】基类、派生类的使用以及成员控制方式基类、派生类的使用以及成员控制方式 【案例完成步骤案例完成步骤】(1)定义基类)定义基类(2)设置基类成员的访问控制方式)设置基类成员的访问控制方式(3)设置派生类成员的访问控制方式)设置派生类成员的访问控制方式(4)实现应用程序)实现应用程序第第9章章 继承继承 9.2.1 定义定义基类基类 通过对通过对【课堂案例课堂案例9-1】的分析,我们确定了要使用的类:的分析,我们确定了要使用的类:Student和

6、和StudentManager。其中,。其中,Student表示学生,表示学生,StudentManager表示学生干部。很显然,学生干部也是表示学生干部。很显然,学生干部也是学生,具有学生的所有特征和信息。通过分析两个类之间学生,具有学生的所有特征和信息。通过分析两个类之间的关系,我们确定的关系,我们确定Student为基类,为基类,StudentManager是是Student的派生类,即:的派生类,即:StudentManager类继承自类继承自Student类。类。 第第9章章 继承继承 9.2.2 设置设置基类成员的访问控制方式基类成员的访问控制方式 确定类之间的关系后,开始定义基类

7、Student。只有先定义基类,才能在其基础上定义派生类。 1.确定字段确定字段: 字段字段类型类型描述描述sStuNumberString学号学号sStuNameString姓名姓名sBirthdayString出生年月出生年月sGenderString性别性别sEnrollTimeString入学时间入学时间sClassString 所在班级所在班级sAddressString家庭住址家庭住址sPhoneString联系电话联系电话sMobileString手机手机sMemoString备注备注第第9章章 继承继承 2.确定方法:定义两个方法确定方法:定义两个方法getInfo()、dis

8、playInfo(),分别实现,分别实现接收和显示功能。下表列出了基类所有的成员方法。接收和显示功能。下表列出了基类所有的成员方法。方法方法功能描述功能描述getInfo()实现学生信息的接收功能实现学生信息的接收功能displayInfo()实现显示学生信息的功能实现显示学生信息的功能3.确定成员的访问方式:基于数据隐藏和继承性的考虑,我们确定成员的访问方式:基于数据隐藏和继承性的考虑,我们隐藏基类的成员字段而公开基类的方法隐藏基类的成员字段而公开基类的方法,因此因此,基类中所有的成基类中所有的成员字段均使用员字段均使用protected修饰修饰,成员方法则使用成员方法则使用public修饰

9、修饰. 第第9章章 继承继承 基类基类Student的定义如下的定义如下:class Student protected string sStuNumber; protected string sStuName; /在此在此,省略了字段的定义省略了字段的定义; public void getInfo() Console.WriteLine(“请输入学生的基本信息请输入学生的基本信息,学号学号,姓名姓名,出生年月等出生年月等”); sStuNumber = Console.ReadLine(); sStuName = Console.ReadLine(); /在此在此,省略字段的赋值省略字段的赋

10、值; public void displayInfo() Console.WriteLine(“输入的学生信息如下:输入的学生信息如下:0,1,2,3,4,5,6,7,8,9”, sStuNumber,sStuName,sBirthday,sGender,sEnrollTime,sClass,sAddress, sPhone,sMobile,sMemo); 第第9章章 继承继承 9.2.3 设置设置派生类成员的访问控制方式派生类成员的访问控制方式 1.确定字段:确定字段: 分析基类与派生类的关系可知,派生类分析基类与派生类的关系可知,派生类StudentManager除了继承基类除了继承基类(

11、Student)类的所有成员信息外,还必须能描述学生干部的特有信息,)类的所有成员信息外,还必须能描述学生干部的特有信息,如担任职务和所在部门等。因此,在基类的基础上,派生类还需要额外定如担任职务和所在部门等。因此,在基类的基础上,派生类还需要额外定义下列字段,如下表所示:义下列字段,如下表所示:字段类型描述sPositionString担任职务sDepartmentString所在部门第第9章章 继承继承 2.确定方法:派生类确定方法:派生类StudentManager相较于基类而言,在原有功能上,还相较于基类而言,在原有功能上,还需要实现接收、显示职务和所在部门的功能。因此,在派生类中再定

12、义需要实现接收、显示职务和所在部门的功能。因此,在派生类中再定义两个方法两个方法getSub和和displaySub,如下表所示:,如下表所示:方法方法功能描述功能描述getSub()实现对担任职务和所在部门信息实现对担任职务和所在部门信息的接收的接收displaySub()实现显示担任职务和所在部门的实现显示担任职务和所在部门的信息信息3.确定成员的访问方式:同样考虑到对类中数据成员的隐藏,确定成员的访问方式:同样考虑到对类中数据成员的隐藏,我们使用我们使用private修饰符控制访问方式。修饰符控制访问方式。 第第9章章 继承继承 派生类派生类StudentManager的定义如下的定义如

13、下:class StudentManager:Student private string sPosition; private string sDepartment; public void getSub() Console.WriteLine(“请输入担任的职务请输入担任的职务”); sPosition = Console.ReadLine(); Console.WriteLine(“请输入所在部门请输入所在部门”); sDepartment = Console.ReadLine(); public void displaySub() Console.WriteLine(“你担任的职务是你

14、担任的职务是:0”,sPostion); Console.WriteLine(“你所在的部门是你所在的部门是:0”,sDepartment); 9.2.4 实现实现应用程序应用程序 第第9章章 继承继承 演示应用程序编辑、编译和运行过程第第9章章 继承继承 课堂实践课堂实践9-1【任务任务1】有两个类:公民、领导。公民包含身有两个类:公民、领导。公民包含身份证号、姓名、出生日期;领导则继承自公民,份证号、姓名、出生日期;领导则继承自公民,并且还具备党派、职务两项信息。使用继承实现并且还具备党派、职务两项信息。使用继承实现这两个类并实现每个类的数据输入这两个类并实现每个类的数据输入/输出功能。输

15、出功能。第第9章章 继承继承 9.3 隐藏基类成员隐藏基类成员 【课堂案例课堂案例9-2】在基类在基类Student中已有中已有getInfo()和和displayInfo(),实现接收学生信息和显示学生信息的功能。,实现接收学生信息和显示学生信息的功能。现要求在派生类现要求在派生类StudentManager中也定义同名方法中也定义同名方法getInfo()和和displayInfo(),该方法除了实现对基本信息的,该方法除了实现对基本信息的接收接收/显示外,还能实现学生干部职务和工作部门的接收显示外,还能实现学生干部职务和工作部门的接收/显示功能。显示功能。【案例学习目标案例学习目标】掌握

16、隐藏基类成员的方法掌握隐藏基类成员的方法 【案例知识要点案例知识要点】使用使用new关键字隐藏基类成员关键字隐藏基类成员 【案例完成步骤案例完成步骤】(1)使用)使用new关键字隐藏基类成员关键字隐藏基类成员 (2)重写基类的成员方法)重写基类的成员方法 (3)实现应用程序)实现应用程序第第9章章 继承继承 9.3.1 使用使用new关键字隐藏基类成员关键字隐藏基类成员 new作为运算符时,在派生类中使用作为运算符时,在派生类中使用new关键字修饰定义关键字修饰定义与基类成员同名的类成员(字段或方法),能实现隐藏基与基类成员同名的类成员(字段或方法),能实现隐藏基类的类成员,即子类中加了类的类

17、成员,即子类中加了new关键字的成员将顶替父类关键字的成员将顶替父类中同名的类成员。中同名的类成员。 根据根据【课堂案例课堂案例9-2】的要求,我们需要在派生类的要求,我们需要在派生类StudentManager中添加和基类同名的中添加和基类同名的getInfo()方法和方法和displayInfo()方法,并且实现派生类中方法,并且实现派生类中getInfo()的功能。的功能。使用使用new关键字可以实现上述功能。关键字可以实现上述功能。9.3.2 实现实现应用程序应用程序 第第9章章 继承继承 演示应用程序编辑、编译和运行过程第第9章章 继承继承 课堂实践课堂实践9-2阅读下面的程序,并预

18、测程序的输出结果。阅读下面的程序,并预测程序的输出结果。namespace prj9_2 public class BaseClass public static int val = 123; public void Fun() Console.WriteLine(“调用基类的方法调用基类的方法Fun”); public class DervClass : BaseClass new public static int val = 456; /隐藏基类的字段隐藏基类的字段 new public void Fun() /隐藏基类的方法隐藏基类的方法 Console.WriteLine(“调用派生

19、类的方法调用派生类的方法Fun”); public class app static void Main(string args) BaseClass ba = new BaseClass(); DervClass de = new DervClass(); ba.Fun(); Console.WriteLine(Base.val); de.Fun(); Console.WriteLine(Derv.val); 第第9章章 继承继承 9.4 派生类的构造函数和析构函数派生类的构造函数和析构函数 派生类不能继承基类的构造函数和析构函数,但派生类在创建对象时,可通过base关键字调用其直接基类的默认构造函数。 派生类在构造对象时,先调用直接基类的构造函数,再调用派生类的构造函数。但派生类对象的析构顺序却与派生类在构造顺序相反,在调用时先调用派生类的析构函数,然后再调用基类的析构函数。 派生类的base关键字调用构造函数格式如下:修饰符派生类名(形参表):base(实参表) 第第9章章 继承继承 9.5 base关键字关键字base关键字不但能实现派生类在创建对象时通过它调用其直接基类的默认构造函数,而且base关键字还能代表基类名。其使用方法是:base.基类成员名 /在派生类中访问基类成员

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com