- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)