网站大量收购独家精品文档,联系QQ:2885784924

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

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八讲 面向对象编程(四) 接口和委托 2. 接口声明 5.4.2 接口的实现 接口的实现举例 多个父接口中同名现象处理 5.4.3 显式接口成员实现(接口映射) 接口的映射 接口映射的几个特例 5.4.4 接口的继承 指代举例 指代对应不同的方法 5.5.3 指代作为算符 指代的组合:几个指代组合在一起,组成一个链,当这个链上调用一个方法时,其他的指代也会被调用。 组合后的指代实际上是对多个方法的包装,对这样的指代的调用实际上是对所包装的各个方法的全部调用,指代中的方法称为调用列表。 事件的注册与移除 事件的发生和应用 * * 5.4 接口 接口的概念:接口是一种引用类型,类似于抽象类,主要用来定义一些必须实现的功能。一旦定义了一个接口,而且定义了一个实现这个接口的类,使用这些类的用户就可以完成接口定义的功能。 多重继承是指一个子类可以有一个以上的直接父类,C#并不支持多重继承,而是用接口实现比多重继承更强的功能。 5.4.1 接口的概念和接口的声明 1. 接口的概念 接口的作用: (1)可以实现不同类的相同行为,不需要考虑类之间的层次关系; (2)可以指明多个类需要实现的方法; (3)可以使处于不同层次甚至互不相关的类具有相同的行为。 程序员可以把用于完成特定功能的若干功能成员组织成相对独立的集合(接口),凡是需要实现这种特定功能的类都可以继承这个集合(接口)并在类内使用它。例如:String类和Double类分别表示字符串和实数,它们有一个共同特点即可以与其他对象比较大小,这时就将相关方法CompareTo集合到一个Icompare接口中,而在String类和Double类中都实现了这个接口即实现了比较的功能。 假设有类Airplane,Bird,Superman,这些类之间并没有继承关系也不一定处于相同的层次上,但他们可以拥有共同的方法takeoff( )、fly( )、land( )。 那就可以定义一个接口Ifly,接口中有三个方法成员,上述三个类都可以继承自该接口,即他们都有相同的三个方法。 Ifly: takeoff( ); fly( ); land( ); Airplane: takeoff( ); fly( ); land( ); ……. Bird: takeoff( ); fly( ); land( ); …… Superman: takeoff( ); fly( ); land( ); …… Vehicle: Animal: 要声明一个接口必须用到interface关键字,声明一个接口的一般形式如下: [ 属性] [修饰符] interface 接口的名称 [:基接口列表] { //语句 } 例子: interface IShowInfo { int x { get; set; } void ShowInfo( ); } 在接口中包含的属性和方法仅仅是一个声明,在接口中不能包含它们的实现,在C#中的接口成员隐含是public,不能再加除new之外的其他修饰符。接口本身可以带修饰符。 声明了一个接口只是定义了一些功能,或者说定义了要完成一些功能的契约,要使用这个功能,还必须用类来实现这个接口,而且可以用一个类来实现多个接口。 using System; interface INumber { int x { get; set; } } class Number:INumber { private int myx; public Number(int x) { myx=x; } public int x //对接口中属性X的实现 { get {return myx;} set {myx=value;} } } class AppMain( ) { private static void WriteX(INumber p) { Console.WriteLine(“x={0}”, p.x); } public static void Main( ) { Number p=new Number(1); WriteX(p); string str=Console.ReadLine( ); } } * 接口的多重继承 接口可以从一个或多个父接口中继承,格式如下: interface Myinterface: Ibase1,Ibase2 { …..} 接口由类来实现时,格式如下: class 类名: 父类,接口1,接口2

文档评论(0)

ligennv1314 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档