Visual C#.NET程序设计第五章面向对象的高级程序设计.ppt

Visual C#.NET程序设计第五章面向对象的高级程序设计.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5.3 抽象类与接口 5.3.1 抽象类 5.3.2 接口 5.3.3 抽象类与接口的比较 5.3.1 抽象类 抽象方法是指在基类的定义中,不包含任何实现代码的方法,实际上就是一个不具有任何具体功能的方法。这样的方法唯一的作用就是让派生类重写。 而只要在类中包含一个抽象方法,该类即为抽象类。在抽象类中,也可以声明非抽象方法。 1.抽象类与抽象方法的声明 在C#中,抽象类和抽象方法使用关键字abstract声明,一般形式如下: public abstract class 抽象类名 { [访问修饰符] abstract 返回值类型 方法名([参数列表]) } 5.3.1 抽象类 抽象类中也可以有抽象属性。类的属性成员添加了abstract关键字后,就成了抽象属性。 抽象属性不提供属性访问器的实现,它只声明该类支持的属性,而将访问器的实现留给派生类。 抽象属性同样可以是只读的、只写的或可读写的属性。一般形式如下: public abstract返回值类型 属性名 { get; set; } 抽象类可以包含抽象的成员,如抽象属性和抽象方法,也可以包含非抽象的成员,甚至还可以包含虚方法。要注意的是,抽象成员必须在抽象类中声明,但抽象类不要求必须包含抽象成员 5.3.1 抽象类 2.重载抽象方法 抽象类中的抽象方法和抽象属性都没有提供实现,当定义抽象类的派生类时,派生类必须重载基类的抽象方法和抽象属性(如果派生类没有进行重载,则派生也必须声明为抽象类,即在类定义前加上abstract。 对于基类的虚方法,其派生类可以不重载。重载抽象类的方法和属性必须使用override关键字。重载抽象方法的格式为: public override方法名称([参数列表]){ } 其中,方法名称和参数列表必须与抽象类中的抽象方法完全一致。 5.3.1 抽象类 【实例5-5】抽象方法和抽象类演示。 5.3.2 接口 接口(interface)是C#的一种数据类型,属于引用类型。一个接口定义一个协定。接口可以包含方法、属性、事件和索引器,接口本身不提供它所定义的成员的实现,接口只指定实现该接口的类或结构必须提供的成员。实现某接口的类必须遵守该接口定义的协定,即必须提供接口成员的实现。 1.接口的声明 在C#中,声明接口使用interface关键字,一般形式如下: [访问修饰符] interface 接口名[ : 基接口列表] { //接口成员 } 5.3.2 接口 1.接口的声明 接口成员可以是属性、方法、索引器和事件,不能包含字段、构造函数等。 所有接口成员隐式地具有了public访问修饰符,因此,接口成员不能添加任何访问修饰符。 5.3.2 接口 2.接口的实现 接口主要用来定义一个规则,让企业内部或行业内部的软件开发人员按标准去实现应用程序的功能。因此,继承接口的类或结构必须实现接口中的所有属性、方法、索引器和事件,继承接口的方法与继承类相似 3.接口的继承 接口也可以继承其它接口,而接口可以多继承,即接口可以从多个接口继承,基接口名之间用逗号分隔。 5.3.2 接口 4.多重接口实现 C#不允许多重类继承,但是C#允许多重接口实现,这意味着一个类可以实现多个接口,如果一个Mobile类支持USB,也可以支持Bluetooth,我们就应该同时实现IUsb和IBluetooth接口,在继承时,两个接口之间用逗号分隔。其类的头部如下所示: public class Mobile : IUsb, IBluetooth 如果类Mobile是类phone的派生子类,也可以同时继承phone类。但要注意,基类必须在所有的接口之前,如: public class Mobile : Phone,IUsb, IBluetooth 5.3.2 接口 5.访问接口的方法 当类Mp3实现了IUsb后,我们可以通过MP3类的对象访问IUsb的成员,就好象是Mp3类的成员一样: Mp3 m = new Mp3(); lblShow.Text=m.TransData(计算机,MP3设备); 或者我们也可以将Mp3对象转换成接口类型,然后用这个接口来访问方法: Mp3 m = new Mp3(); IUsb iu = (IUsb)m; lblShow.Text = iu.TransData(计算机, MP3设备); 5.3.2 接口 5.显式接口实现时,只能通过接口来访问其成员 表达式 is 类型 当表达式(必须是引用类型)可以安全的转换为“类型”时,结果为true,否则为false。下面示例说明了is操作

文档评论(0)

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

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

1亿VIP精品文档

相关文档