09 面向对象编程:接口和多态

09 面向对象编程:接口和多态

ID:34097118

大小:171.68 KB

页数:14页

时间:2019-03-03

09 面向对象编程:接口和多态_第1页
09 面向对象编程:接口和多态_第2页
09 面向对象编程:接口和多态_第3页
09 面向对象编程:接口和多态_第4页
09 面向对象编程:接口和多态_第5页
资源描述:

《09 面向对象编程:接口和多态》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第9章创建接口.NET在线培训学习资料更多学习材料,请到www.rzchina.net下载接口是C#语言中一类特殊的语法形式,从形式上看,接口与类的结构较为相似:ß接口可以有方法、属性、索引器和事件的声明ß实现接口的任何类都必须提供接口中所声明的抽象成员的定义ß接口可以要求任何实现类必须实现一个或多个其他接口。9.1.1接口语法接口是使用interface关键字定义的,典型的接口语法定义如下所示:interfaceIComparable{//statement}例如,在下面的接口定义中,定义了一个接口IComparable,在接口中定义了一个方法CompareTo:interfaceIComp

2、arable{intCompareTo(objectobj);}接口具有下列属性:ß接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员。ß不能直接实例化接口。ß接口可以包含事件、索引器、方法和属性。ß接口不包含方法的实现。ß类和结构可从多个接口继承。ß接口自身可从多个接口继承。第1章C#语言入门·213·9.1.2接口限制在接口的定义中,接口的名称必须使用I表示接口的前缀,接口的成员一定是公共的,除此之外,还需要注意以下方面的限制:ß接口可以用任何可访问性来声明,但接口成员必须全都具有公共可访问性。ß不能向成员或接口自身附加安全性权限。ß接口可以定义类构造函数,但不能定义实例

3、构造函数。ß每种语言都必须为需要成员的接口映射一个实现提供规则,因为不只一个接口可以用相同的签名声明成员,且这些成员可以有单独的实现。在类对接口实现继承的时候,类和结构可以按照类继承基类或结构的类似方式继承接口,但有两个例外:ß类或结构可继承多个接口。ß类或结构继承接口时,仅继承方法名称和签名,因为接口本身不包含实现。例如:publicclassMinivan:Car,IComparable{publicintCompareTo(objectobj){//implementationofCompareToreturn0;//iftheMinivansareequal}}9.1.3实现接口若要实

4、现接口成员,类中的对应成员都必须保证是公共的、非静态的,并且与接口成员具有相同的名称。下面的例子中,将实现一个在银行之间互相转账的功能,首先定义一个银行转账的接口IBank,在接口中有入帐和出帐的方法,以及一个表示账面平衡的参数。(1)打开VisualStudio2005编辑器,单击“文件”菜单,选择“新建项目”命令,打开VisualStudio2005编辑器的创建向导,接着语言选择C#,选择“控制台应用程序”,可参考如图9-1所示。(2)修改生成的代码文件如下所示:usingSystem;usingSystem.Collections.Generic;usingSystem.Text;nam

5、espace@interface{interfaceIBank{voidPayIn(floatcount);voidwithdraw(floatcount);floatTransfercount{get;}}·214·第5章创建Web窗体publicclassBankA:IBank{privatefloattransfercount;publicBankA(){Console.WriteLine("继承自IBank的BankA");}publicvoidPayIn(floatcount){transfercount+=count;}publicvoidwithdraw(floatcount){

6、if(transfercount>=count)transfercount-=count;Console.WriteLine("账面出错了");}publicfloatTransfercount{get{returntransfercount;}}publicoverridestringToString(){returnstring.Format("Bank结余:Transfercount={0,6:C}",transfercount);}}classProgram{staticvoidMain(string[]args){IBankibankcount=newBankA();ibankcou

7、nt.PayIn(200);ibankcount.withdraw(100);Console.WriteLine(ibankcount.ToString());}}}(3)使用快捷键“Ctrl+F5”,执行程序,如图9-1所示。第1章C#语言入门·215·图9-1接口的实现9.1.4接口的继承接口与类相同,也可以实现继承,本节将进一步实现上面的程序,在此基础上实现一个继承自默认接口IBank的接口

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。