[工学]第04章 面向对象的高级编程.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[工学]第04章 面向对象的高级编程

第4章 面向对象的高级编程 4.1 封装、继承与多态 4.2 版本控制 4.3 接口 4.4 委托 4.5 泛型处理 本章教学目的 介绍面向对象高级编程的相关知识,使学生对C#高级编程有一个初步的感性认识。 本章教学要求 (1)掌握继承、重写、接口、泛型的概念及基本用法; (2)掌握与实验有关的相关内容。 (3)了解其他内容。 4.1 封装、继承与多态 封装: 隐藏外部调用者不需要了解的类内部的信息。 继承: 指一个类(扩充类)通过某种简单表示形式使其自动拥有另一个类(基类)的各种属性和方法,并能进行扩充。 多态: 通过类的继承使扩充类与基类中名称相同的方法具有不同的功能。 4.1.1 封装 模块信息通过类封装 类的成员通过字段、属性、方法、事件封装 私有的用private 可以被继承的用protected 公共成员用public 不要为了方便把什么都定义成public 不要为了方便把什么都定义成static 4.1.2 继承 两种实现继承的方式:类继承和接口继承。 类继承只允许单一继承 ,接口可实现多重继承。 被继承的类叫基类(父类)。 继承自其他类的类叫扩充类(子类)。 4.1.2 继承 声明扩充类的语法: [访问修饰符] class 扩充类名称:基类名称 { //程序代码 } 2.扩充类继承了所有定义在基类中数据的定义和方法。 3. 执行时,先执行基类的构造函数,然后依次执行扩充类的构造函数。 4.继承的例子(1):P76 例4-2。 5.如果不想让某个类被继承,可以使用sealed修饰符。 4.1.2 继承中构造函数的特殊写法 思考:下面的程序能否通过编译? 4.1.2 继承中构造函数的特殊写法 using System; class A { private int age; public A(){ } public A(int age) { this.age = age; } } class B : A { private int age; public B():base(){ } public B(int age) :base(age) { this.age = age; } } class Program { static void Main(string[] args) { B b = new B(10); } } 4.1.3 多态 用相同的操作名在一个类层次的不同类中实现不同的功能,相同的消息由同一(父)类的不同对象接收时,导致不同的行为。 4.1.3 多态 1、虚方法 如果想让某个方法或者属性被扩充类重写,在基类中用virtual: public virtual void myMethod() { ……//程序代码 } 扩充类则用override修饰符表示重写: public override void myMethod() { ……//程序代码 } 注意: 对于扩充类,如果仍想让其方法或者属性被该类的扩充类重写,则该类可以用virtual或者override,该类的扩充类则用override。 4.1.3 多态 class A { public A() { Console.WriteLine(a); } public virtual void Hello() { Console.WriteLine(HA); } public void M() { Console.WriteLine(M); } } class B : A { public B() { Console.WriteLine(b);} public override void Hello() { Console.WriteLine(HB); } } 4.1.3 多态 使用虚拟方法和重写方法时,要注意: (1)虚拟方法不能声明为静态的。 (2)Virtual、override不能和private一起使用。 (3)重写方法或属性的名称、参数个数、类型以及返回值都必须和虚拟方法或属性的一致。 举例1 P79 例4-4。 4.1.3 多态 举例2(运行效果见右图) (1)创建一个Windows应用程序 (2)创建一个用户控件Shape 添加代码: public virtual void Draw() { Graphics g = this.CreateGraphics()

文档评论(0)

skvdnd51 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档