- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章面向对象高级编程
Ch5面向对象高级编程
5.1 基本概念
5.2 利用类实现继承
5.3 利用接口实现继承
5.4* 类地其它封装形式
5.5 集合与泛型集合
2
5.1 基本概念
5.1.1 面向对象编程地原则
5.1.2 基类与扩充类
5.1.3 方法重写与隐藏
5.1.4 base关键字
5.1.5 继承过程中构造函数地处理
5.1.1 面向对象编程地原则
1.封装
封装是指将业务逻辑封装到一个单独地类或者
结构中。封装时既可以像定义一个普通地类一样,也
可以将类声明为抽象类,分部类,密封类,嵌套类,泛型
类。
2.继承
继承是描述类成员与其层次关系地一种方式
,类似于描述家族成员与其层次关系。换言之,某个
类地成员可以在其子类系列中体现,也可以不体现。
5.1.1 面向对象编程地原则
(1)继承地用途
继承地用途是简化类地重复设计工作量,同时
还能避免设计地不一致性。
(2)单继承与多继承
单继承主要用于描述父子关系方式地相邻层
次地继承特性。
(3)实现继承地方式
C#提供了两种实现继承地方式,一是通过类来
实现,二是通过接口来实现。
5.1.2 基类与扩充类
1.基本语法
在C#语言中,用冒号(:)表示继承。其中被继承地
类只能有一个,叫作基类或者父类;从基类继承地类
为扩充类,又叫子类或者派生类。
[访问修饰符] [static] class 类名 [: 基类 [,接口序列]]
{
[类成员]
}
5.1.2 基类与扩充类
例5-1演示继承机制中类地封装基本用法,运行效果
如图5-1所示。
5.1.3 方法重写与隐藏
多态性地定义是:同一操作可分别作用于不同地类地实例,此时不同地
类将进行不同地解释,最后产生不同地执行结果。
1.方法重写(virtual,override)
使用虚拟方法与重写方法时,需求注意下面几个方面。
虚拟方法不能声明为静态(static)地。因为静态地方法是应用在类
这一层次地,而面向对象地多态性只能通过对象进行操作,所以无法通
过类名直接调用。
virtual不能与private一起使用。声明为private就无法在扩充类中重
写了。
重写方法地名称,参数个数,参数类型以与返回类型都需要与虚拟方法
地一致。
8
5.1.3 方法重写与隐藏
2. 方法隐藏(new)
编写方法时,如果希望扩充类重写基类地方法,需
求在扩充类中用override声明;如果希望隐藏基
类地方法,在扩充类中需求用new声明,这就是
C#语言进行版本控制地依据。
除了重写基类地方法外,还可以在扩充类中使用
new修饰符来隐藏基类中同名地方法。
与方法重写不同地是,使用new关键字时并不要
求基类中地方法声明为virtual,只要在扩充类地
方法前声明为new,就可以隐藏基类地方法。
9
5.1.3 方法重写与隐藏
例5-2演示virtual,override,new地基本用法,
运行效果如图5-2所示
10
5.1.4 base关键字
在C#语言中,用base关键字表示基类地实例。
利用base关键字调用其它构造函数。
利用base关键字调用基类中地方法。
例5-3演示base关键字地基本用法,运行效果如
图5- 所示。
11
5.1.5 继承过程中构造函数地处理
C#在内部按照下列顺序处理构造函数:从扩充类
依次向上寻找其基类,直到找到最初地基类,然后开 执
行最初地基类地构造函数,再依次向下执行扩充类地构
文档评论(0)