- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
- 清华大学课件汽车构造I9发动机管理系统.ppt
- 清华大学课件汽车构造I8汽油机燃油供给系统.ppt
- 第五章 疾病预防.ppt
- 第五章 相交线与平行线.2 平行线的判定(第1课时).ppt
- 第五章 第4讲 简单的线性规划 【更多关注@高中学习资料库 加微信:gzxxzlk做每日一练】.ppt
- 第五章 货款的支付(票据).ppt
- 第五章 评价与监督.ppt
- 第五章 配位滴定法第七章 配位滴定法.ppt
- 第五章 货款的支付(汇付和托收).ppt
- 第五章 风险管理技术—控制型.ppt
- 小学科学:ESP8266智能插座电路原理与动手实践研究教学研究课题报告.docx
- 《金融开放浪潮下我国多层次监管体系构建与创新研究》教学研究课题报告.docx
- 区域教育质量监测中人工智能应用的数据质量分析与优化策略教学研究课题报告.docx
- 《金融科技监管中的数据治理与合规性要求》教学研究课题报告.docx
- 《3D打印技术在航空航天领域中的多材料制造与复合材料应用》教学研究课题报告.docx
- 《绿色金融发展中的政府职能与市场机制研究》教学研究课题报告.docx
- 《植物工厂多层立体栽培光环境调控技术对植物生长发育节律的调控机制探讨》教学研究课题报告.docx
- 销售团队年度业绩总结.docx
- 银行风险管理与金融危机防范.docx
- 银行网络攻击预警与快速响应机制.docx
最近下载
- 附件14:项目《标价分离书》.xls VIP
- 喷塑规章制度管理.doc VIP
- 2025年高考真题——物理(甘肃卷)含答案.docx VIP
- DBJD25-60-2018 甘肃省建设工程施工机械台班费用定额(含税).docx
- 考研真题 中山大学化学学院化学(B)历年考研真题汇编.docx VIP
- 2025年甘肃高考化学真题试卷含答案.docx VIP
- Colorful七彩虹 主板Intel H610H610M-D EVO V21 说明书(系统 win10 win11)用户手册.pdf
- 新九年级暑假衔接讲义 20 作文(二)描写出彩(学生版+教师版)2025八升九语文统编版.docx VIP
- 2024年甘肃高考政治试卷(真题+答案).pdf VIP
- 模板7:CSCEC8B-CM- M10303《项目商务资料档案清单》.xls VIP
文档评论(0)