c#第6章 继承与多态性课件.ppt

c#第6章 继承与多态性课件.ppt

ID:57055394

大小:183.00 KB

页数:19页

时间:2020-07-30

c#第6章 继承与多态性课件.ppt_第1页
c#第6章 继承与多态性课件.ppt_第2页
c#第6章 继承与多态性课件.ppt_第3页
c#第6章 继承与多态性课件.ppt_第4页
c#第6章 继承与多态性课件.ppt_第5页
资源描述:

《c#第6章 继承与多态性课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第6章继承与多态性(InheritanceandPolymorphism)6.1类之间的关系客观事务是分成不同种类的,有些类不是孤立存在的,相互之间有着某种联系。一般类之间主要存在以下关系:⒈包含关系:即类A的对象A是类B的对象B的组成部分。例如点对象是矩形对象的组成部分,一个矩形由四个点组成。类之间的这种关系叫做聚集(Aggregation),也称为复合关系。⒉继承关系:类之间有部分特性和方法是相同的,既有共性的特性和方法,除此之外,有些类还有自己独特的特点。例如:人类,都有共同的特点,但是某些特殊职业的人有其特殊的特点(教师,医生等的专业特点和特殊技能);植物和动

2、物的分类等。类关系的图示:聚集关系:继承关系:矩形类点类14人类教师医生6.2继承与派生继承的语法:class派生类类名:基类类名{派生类成员;}基类只能有一个。派生类将基类的成员全部继承下来,即基类的成员也是派生类的成员。派生类的成员由两部分组成:一部分是从基类继承来的,另一部分是在派生类中新添加的。继承可以实现代码复用。一次只能继承一个基类,不能同时继承多个基类。但是允许纵向多重继承。即C继承B,B继承A是允许的,但是C同时继承A和B是不允许的。例如:classHumen{publicstringname;publicstringsex;publicstringw

3、ork;}classTeacher:Humen{publicstringspeciality;publicstringdepartment;}Human是基类,Teacher是派生类,它拥有基类的全部成员。类object是所有类的基类,即使不明显指定从该类继承,所有的类也自动以该类为基类。即classHuman{publicstringname;publicstringsex;publicstringwork;}与classHuman:object{publicstringname;publicstringsex;publicstringwork;}是等价的。一般不用

4、指定从object类继承,继承是自动进行的。6.3具有继承关系的类成员的访问派生类对基类成员的访问派生类可以访问基类的公共成员、受保护成员、内部成员和受保护内部成员。即使派生类继承基类的私有成员,仍不能访问这些成员。但是,所有这些私有成员在派生类中仍然存在,且仍然实现在基类自身中相应的功能。基类不能访问派生类的成员。详见例Inheritance派生类不能访问基类私有成员:y。派生类隐藏基类成员:用new关键字。隐藏基类的字段成员:派生类可以声明与基类有相同的名称和类型的字段成员来隐藏基类的字段。这时通过派生类引用或对象访问的是派生类的字段,基类的相应成员被屏蔽了。但是

5、通过指向派生类对象的基类引用访问的则是基类的字段。隐藏基类的方法成员:派生类可以声明与基类有相同的方法名称和形参表的方法成员来隐藏基类的方法,与返回类型无关。这时通过派生类引用或对象访问的是派生类的方法成员,基类的相应方法成员被屏蔽了。但是通过指向派生类对象的基类引用访问的则是基类的成员。在派生类中可以通过base关键字访问被隐藏的基类成员。详见例MaskBase。可以通过指向派生类对象的基类的引用访问被隐藏的基类成员:当派生类隐藏了基类的成员后,如果用基类的引用指向派生类对象,当用该引用访问隐藏的成员时,只能访问基类的相应成员。详见例MaskBase。6.4构造函数

6、和析构函数的执行构造函数和析构函数和析构函数是不能继承的。6.4.1构造函数的执行派生类和基类都有各自的构造函数,派生类拥有基类的全部成员和自己的成员,当派生类的对象初始化时,自己的成员在自己的构造函数中初始化,从基类继承来的成员需要调用基类的构造函数完成初始化,不应该在派生类构造函数中初始化基类的成员。基类构造函数的调用:创建基类的对象时,要调用构造函数,调用顺序是:先调用基类的构造函数,后执行派生类的构造函数。不指定时,基类不带参数的构造函数被自动调用。可使用bsae关键字调用基类指定的构造函数。例如:MaskBase。使用this可以访问派生类的其它构造函数,从

7、而可以间接地调用基类的构造函数。(不推荐此法)例如:MaskBase。构造函数的调用顺序:创建基类的对象时,要调用构造函数,调用顺序是:先调用基类的构造函数,后执行派生类的构造函数。当有纵向多重继承时,以此类推。详见MaskBase。派生类字段初始化基类字段初始化调用基类的构造函数执行派生类的构造函数使用base调用基类构造函数派生类字段初始化基类字段初始化调用基类的构造函数执行派生类的构造函数使用this调用基类构造函数调用this指定的派生类中构造函数实验五:继承与派生实验目的:掌握继承与派生的基本概念;具有继承关系时类成员的访问原则;构造函数的

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

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

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