第八讲 面向对象编程(四)接口和委托.pptVIP

第八讲 面向对象编程(四)接口和委托.ppt

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

第八讲 面向对象编程(四) 接口和委托; 5.4 接口;接口的作用: (1)可以实现不同类的相同行为,不需要考虑类之间的层次关系; (2)可以指明多个类需要实现的方法; (3)可以使处于不同层次甚至互不相关的类具有相同的行为。 程序员可以把用于完成特定功能的若干功能成员组织成相对独立的集合(接口),凡是需要实现这种特定功能的类都可以继承这个集合(接口)并在类内使用它。例如:String类和Double类分别表示字符串和实数,它们有一个共同特点即可以与其他对象比较大小,这时就将相关方法CompareTo集合到一个Icompare接口中,而在String类和Double类中都实现了这个接口即实现了比较的功能。;假设有类Airplane,Bird,Superman,这些类之间并没有继承关系也不一定处于相同的层次上,但他们可以拥有共同的方法takeoff( )、fly( )、land( )。 那就可以定义一个接口Ifly,接口中有三个方法成员,上述三个类都可以继承自该接口,即他们都有相同的三个方法。;2. 接口声明;5.4.2 接口的实现;接口的实现举例;* 接口的多重继承;多个父接口中同名现象处理;5.4.3 显式接口成员实现(接口映射);class AppMain( ) { public static void Main( ) { Test t=new Test( ); //生成一个Test类的实例 ITest it=t; //生成一个接口的实例 it.test1( ); //用接口的实例来调用方法test1 t.test2( ); //用实现类的实例方法来调用test2 string str=Console.ReadLine( ); } };接口的映射;接口映射的几个特例;5.4.4 接口的继承;5.5 指代与事件;指代举例;指代对应不同的方法;5.5.3 指代作为算符;public class AppMain( ) { static void Main( ) { //生成一个类实例 UseAdd p=new UseAdd(12,15); //生成一个指代实例,对应于AddFunc.Add方法 p.ma=new UseAdd.MyDelegate(AddFunc.Add); //调用指代方法 p.Invoke( ); } } 在该例中的指代实现是“+”的运算。;指代的组合:几个指代组合在一起,组成一个链,当这个链上调用一个方法时,其他的指代也会被调用。 组合后的指代实际上是对多个方法的包装,对这样的指代的调用实际上是对所包装的各个方法的全部调用,指代中的方法称为调用列表。;using System; delegate void Mydelegate(string s); class Myclass { public static void First(string s) { Console.WriteLine(“First {0}”,s);} public staitc void Second(string s) {Console.WriteLine(“Second {0}”,s); } public static void Third(string s) {Console.WriteLine(“Third {0}”,s);};事件是在指代的基础上实现的一种通知机制,比如一个按纽的双击 就是一个事件,这个事件的发生可以通知相关的程序进行处理。 事件的工作过程为:关心某个事件的对象向能发出事件的对象进 行事件处理程序的注册;当事件发生时,会调用所有注册的事件 处理程序。事件处理程序要用指代来表示,事件就是指代实例。 声明一个事件的方式:修饰符 event 指代类型名 事件名 如: public delegate void Mydelegate( ); event Mydelegate MyEvent;;事件的注册与移除;事件的发生和应用;using System; namespace ConsoleApplication1 { public class EventClass { public delegate void Mydelegate( ); public event Mydelegate MyEvent; public void OnEvent( ) { if(MyEvent!=nul

文档评论(0)

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

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

版权声明书
用户编号:5134022301000003

1亿VIP精品文档

相关文档