使用C#进行面向对象编程 第八章 继承和多态.ppt

使用C#进行面向对象编程 第八章 继承和多态.ppt

ID:51588456

大小:175.50 KB

页数:48页

时间:2020-03-24

使用C#进行面向对象编程 第八章 继承和多态.ppt_第1页
使用C#进行面向对象编程 第八章 继承和多态.ppt_第2页
使用C#进行面向对象编程 第八章 继承和多态.ppt_第3页
使用C#进行面向对象编程 第八章 继承和多态.ppt_第4页
使用C#进行面向对象编程 第八章 继承和多态.ppt_第5页
资源描述:

《使用C#进行面向对象编程 第八章 继承和多态.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第八章继承和多态1本章内容继承引用变量类型和所指对象类型不一致的情况多态抽象类和抽象方法28.1继承在C#编程语言中,通过继承可利用已有的类,并扩展它的属性和方法。这个已有的类可以是.net类库中的类的或其他程序员编写的。通过继承,能够复用原有代码。3什么是继承如何定义继承子类对象的创建过程父类的private成员的继承问题静态成员的继承问题成员变量的隐藏方法的隐藏base关键字有关继承的知识点4考虑如下问题:定义动物,人,鱼这三个类存在几个问题:(1)没有描述这几个类之间的关系。(2)定义其他类(如猫,狗)时,除了定义该类的特殊属性和行为外,还需要定义动物的一般属性和行为。

2、(3)如果动物的一般属性和行为需要修改,则跟该类有关的所有类的定义都需要修改。动物的属性动物的行为动物的属性动物的行为人的特殊属性人的特殊行为动物的属性动物的行为鱼的特殊属性鱼的特殊行为动物人鱼(1)什么是继承5为解决这个问题,引入类的继承这个概念。我们使得人类和鱼类继承动物类。动物的属性动物的行为自动具有动物类的属性和行为人的特殊属性人的特殊行为自动具有动物类的属性和行为鱼的特殊属性鱼的特殊行为动物(基类/父类/超类)人(派生类/子类)鱼(派生类/子类)继承继承6基类和派生类的概念是相对的,一个类既可以是基类,也可以是派生类。汽车小轿车卡车客车继承继承继承轮船交通工具继承继

3、承7继承的语法形式:class子类的名称:父类名称{子类特有的成员变量和成员函数}(2)如何定义继承classHuman:Living{publicvoidsay(){System.Console.Write("hello!");}}classAnimal{publicintage;publicvoidshout(){}}8分析一所大学中的人的类层次结构学生本科生研究生教师继承继承继承教职员工人继承继承职工继承9C#中所有的类(包括我们自己定义的类)都是直接或间接继承自System.Object类。10注意:(1)子类继承所有的父类成员(2)子类中能够直接访问继承自父类的pu

4、blic、protected成员(3)子类中不能够直接访问继承自父类的private成员11继承的威力你已经实现了一个基本的计算器程序.现在如果要你实现一个类似windows自带计算器那样既有标准版功能又有科学版功能的计算器,你该怎么办?12(3)子类对象的创建过程子类对象可看作内部包含着一个父类的对象子类对象的创建过程(1)按照定义顺序初始化子类对象新定义的成员变量(2)创建子类对象中包含的父类对象(3)调用子类的构造函数classX{}classY:X{publicintdata;}X类对象Y类对象data13习题:下列程序的输出结果是什么?classA{publicA(

5、){System.Console.WriteLine("A()");}}classB{publicB(){System.Console.WriteLine("B()");}}classPoint{publicPoint(){System.Console.WriteLine("Point()");}}classMapPoint:Point{publicMapPoint(){System.Console.WriteLine("MapPoint()");}}classColorPoint:MapPoint{publicAa=newA();publicBb;publicColorPo

6、int(){System.Console.WriteLine("ColorPoint()");}publicstaticvoidMain(){newColorPoint();}}PointMapPointColorPoint14子类中不能直接访问继承自父类的private成员,下列程序编译出错publicclassA{privateintage=10;}publicclassB:A{publicvoidfun(){age=20;}}ageA类的对象ageTest类的对象继承自A类(4)父类的private成员的继承问题15在子类中如何访问继承自父类的private成员?可以通

7、过继承自父类的public或protected成员来访问继承自父类的private成员publicclassA{privateintage=10;publicintGetAge(){returnage;}}publicclassB:A{publicvoidFun(){Console.WriteLine(GetAge());}}publicclassTest{publicstaticvoidMain(string[]args){Bb1=newB();b1.Fun();}}16某类的静态成员为该类及该类的所

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。