全面剖析C#接口编程之定义接口.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
全面剖析C#接口编程之定义接口 二 2008年07月24日 星期四 下午 03:04 什么是接口?其实,接口简单理解就是一种约定,使得实现接口的类或结构在形式上保持一致。个人觉得,使用接口可以使程序更加清晰和条理化,这就是接口的好处,但并不是所有的编程语言都支持接口,C#是支持接口的。注意,虽然在概念上,C#接口类似于COM接口,但他们的底层结构是不同的。那么,我们来看一下如何声明和使用接口。   声明接口   声明接口在语法上和声明抽象类完全相同,例如这里有一个银行账户的接口:    public interface IBankAccount { ????void PayIn(decimal amount); ????bool Withdraw(decimal amount); ????decimal Balance ???? { ????????get; ???? } }   使用接口的例子   一个银行账户的接口,两个不同银行账户的实现类,都继承于这个接口。接口声明如上。下面是两个账户类: class SaverAccount : IBankAccount { ????private decimal balance; ????public decimal Balance ???? { ????????get ???????? { ???????????? return balance;???? ???????? } ???? } ????public void PayIn(decimal amount) ???? { ???????? balance += amount; ???? } ????public bool Withdraw(decimal amount) ???? { ????????if (balance = amount) ???????? { ???????????? balance -= amount; ????????????return true; ???????? } ???????? Console.WriteLine(Withdraw failed.); ????????return false; ???? } ????public override string ToString() ???? { ????????return String.Format(Venus Bank Saver:Balance={0,6:C}, balance); ???? } } class GoldAccount : IBankAccount { ????private decimal balance; ????public decimal Balance ???? { ????????get ???????? { ???????????? return balance; ???????? } ???? } ????public void PayIn(decimal amount) ???? { ???????? balance += amount; ???? } ????public bool Withdraw(decimal amount) ???? { ????????if (balance = amount) ???????? { ???????????? balance -= amount; ????????????return true; ???????? } ???????? Console.WriteLine(Withdraw failed.); ????????return false; ???? } ????public override string ToString() ???? { ????????return String.Format(Jupiter Bank Saver:Balance={0,6:C}, balance); ???? } }   可见,这两个实现类多继承了IBankAccount接口,因此它们必须要实现接口中的所有声明的方法。要不然,编译就会出错。 static void Main(string[] args) { ????IBankAccount venusAccount = new SaverAccount(); ????IBankAccount jupiterAccount = new CurrentAccount(); ???? venusAccount.PayIn(200); ???? jupiterAccount.PayIn(500); ???? Console.WriteLine(venusAccount.ToStrin

文档评论(0)

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

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

1亿VIP精品文档

相关文档