第5章面向对象高级编程.ppt
《第5章面向对象高级编程.ppt》由会员分享,可在线阅读,更多相关《第5章面向对象高级编程.ppt(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第5章面向对象高级编程2Ch5Ch5面向对象面向对象高级高级编程编程5.1 基本概念基本概念5.2 利用类实现继承利用类实现继承5.3 利用接口实现继承利用接口实现继承5.4*类的其他封装形式类的其他封装形式5.5 集合与泛型集合集合与泛型集合5.1 5.1 基本概念基本概念5.1.1 面向对象编程的原则面向对象编程的原则5.1.2 基类与扩充类基类与扩充类5.1.3 方法重写与隐藏方法重写与隐藏5.1.4 base关键字关键字5.1.5 继承过程中构造函数的继承过程中构造函数的处理处理5.1.1 5.1.1 面向对象编程的原则面向对象编程的原则1封装封装封装封装是指将业务逻辑封装到一个单独的
2、类或者结构中。是指将业务逻辑封装到一个单独的类或者结构中。封装时既可以像定义一个普通的类一样,也可以将类声明封装时既可以像定义一个普通的类一样,也可以将类声明为抽象类、分部类、密封类、嵌套类、泛型类等。为抽象类、分部类、密封类、嵌套类、泛型类等。2继承继承继承继承是描述是描述“类成员类成员”及其层次关系的一种方式,类及其层次关系的一种方式,类似于描述似于描述“家族成员家族成员”及其层次关系。换言之,某个类的及其层次关系。换言之,某个类的成员可以在其子类系列中体现,也可以不体现。成员可以在其子类系列中体现,也可以不体现。5.1.1 5.1.1 面向对象编程的原则面向对象编程的原则(1)继承的用途
3、)继承的用途继承继承的用途是简化类的重复设计工作量,同时还能避的用途是简化类的重复设计工作量,同时还能避免设计的不一致性。免设计的不一致性。(2)单继承与多继承)单继承与多继承单继承单继承主要用于描述主要用于描述“父子关系父子关系”方式的相邻层次的方式的相邻层次的继继承特性。承特性。(3)实现继承的方式)实现继承的方式C#提供了两种实现继承的方式,一是通过类来实现,提供了两种实现继承的方式,一是通过类来实现,二是通过接口来实现二是通过接口来实现。5.1.2 5.1.2 基类与扩充类基类与扩充类1基本语法基本语法在在C#语言中,用冒号(语言中,用冒号(“:”)表示继承。其中被)表示继承。其中被继
4、承的类只能有一个,叫作基类或者父类;从基类继承的类只能有一个,叫作基类或者父类;从基类继承的类称为扩充类,又叫子类或者派生类。继承的类称为扩充类,又叫子类或者派生类。访问修饰符访问修饰符 static class 类名类名:基类基类,接口序列,接口序列 类成员类成员5.1.2 5.1.2 基类与扩充类基类与扩充类【例【例5-1】演示继承机制中类的封装基本用法,运演示继承机制中类的封装基本用法,运行效果如图行效果如图5-1所示。所示。85.1.3 5.1.3 方法重写与隐藏方法重写与隐藏多态性多态性的定义是:同一操作可分别作用于不同的类的实例,此时不同的定义是:同一操作可分别作用于不同的类的实例
5、,此时不同的类将进行不同的解释,最后产生不同的执行结果的类将进行不同的解释,最后产生不同的执行结果。1方法重写(方法重写(virtual、override)使用使用虚拟方法与重写方法时,需要注意下面几个方面。虚拟方法与重写方法时,需要注意下面几个方面。虚拟虚拟方法不能声明为静态(方法不能声明为静态(static)的。因为静态的方法是应用在类这)的。因为静态的方法是应用在类这一层次的,而面向对象的多态性只能通过对象进行操作,所以无法通一层次的,而面向对象的多态性只能通过对象进行操作,所以无法通过类名直接调用。过类名直接调用。virtual不能和不能和private一起使用。声明为一起使用。声明为
6、private就无法在扩充类中重写就无法在扩充类中重写了。了。重写重写方法的名称、参数个数、参数类型以及返回类型都必须和虚拟方方法的名称、参数个数、参数类型以及返回类型都必须和虚拟方法的一致。法的一致。95.1.3 5.1.3 方法重写与隐藏方法重写与隐藏2.方法方法隐藏隐藏(new)编写方法时,如果希望扩充类重写基类的方法,需要在扩充类中用编写方法时,如果希望扩充类重写基类的方法,需要在扩充类中用override声明;如果希望隐藏基类的方法,在扩充类中需要用声明;如果希望隐藏基类的方法,在扩充类中需要用new声声明,这就是明,这就是C#语言进行版本控制的依据。语言进行版本控制的依据。除了重写
7、基类的方法外,还可以在扩充类中使用除了重写基类的方法外,还可以在扩充类中使用new修饰符来隐藏基修饰符来隐藏基类中同名的方法。类中同名的方法。与方法重写不同的是,使用与方法重写不同的是,使用new关键字时并不要求基类中的方法声明关键字时并不要求基类中的方法声明为为virtual,只要在扩充类的方法前声明为,只要在扩充类的方法前声明为new,就可以隐藏基类的,就可以隐藏基类的方法方法。105.1.3 5.1.3 方法重写与隐藏方法重写与隐藏【例【例5-2】演示演示virtual、override、new的基本的基本用法,运行效果如图用法,运行效果如图5-2所示。所示。115.1.4 base5.
8、1.4 base关键字关键字在在C#语言中,用语言中,用base关键字表示基类的实例。关键字表示基类的实例。利用利用base关键字调用其他构造关键字调用其他构造函数函数。利用利用base关键字调用基类中的关键字调用基类中的方法方法。【例【例5-3】演示演示base关键字的基本用法,运行效果关键字的基本用法,运行效果如图如图5-3所示。所示。125.1.5 5.1.5 继承过程中构造函数的处理继承过程中构造函数的处理C#在内部按照下列顺序处理构造函数:从扩充在内部按照下列顺序处理构造函数:从扩充类依次向上寻找其基类,直到找到最初的基类,然后类依次向上寻找其基类,直到找到最初的基类,然后开始执行最
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 高级 编程
限制150内