您的位置:首页 > 编程语言 > C#

C#2005 .NET3.0高级编程学习笔记————接口

2008-02-02 21:51 549 查看
接口
如果一个类派生于一个接口,它就会执行某些函数。

声明接口在语法上与声明抽象类完全相同,但不允许提供接口中任何成员的执行方式。一般情况下,接口中只能包含方法、属性、索引器和事件的声明。不能实例化接口,所以接口不能有构造函数或字段,也不允许包含运算符重载。不允许声明成员上的修饰符,成员总是公共的。

定义和实现接口

接口名称传统上以字母I开头。


namespace Ling.Note.One




...{


public interface IBankAccount




...{


void PayIn(decimal amout);


bool Withdraw(decimal amount);


decimal Balance




...{


get;


}


}


}

下面的类实现了该接口


namespace Ling.Note.One.VenusBank




...{


public class SaverAccount : IBankAccount




...{


private decimal balance;


public void PayIn(decimal amount)




...{


balance += amount;


}


public bool Withdraw(decimal amount)




...{


if(balance >= amount)




...{


balance -= amount;


renturn true;


}


Console.WriteLine("fialed");


return false;


}


public decimal Balance




...{


get




...{


return balance;


}


}


public override string ToString()




...{


return String.Format("Venus Bank Saver:Blance = {0,6:C}", balance);


}


}


}

如果派生类没有提供实现代码,编译器就会产生错误。接口仅表示其成员的存在性,类负责确定这些成员是虚拟的还是抽象的。

接口引用完全可以看作是类引用,但接口引用可以引用任何实现该接口的类。


IBankAccout[] account = new IBankAccount[2];


account[0] = new SaverAccount();


...............

派生的接口

接口可以彼此继承,其方式与类的继承相同。


namespace Ling.Note.One




...{


public interface ITranceferBankAccount : IBankAccount




...{


bool TransferTo(IBankAccount destination, decimal amout);


}


}

因为ITranseferBankAccount派生于IBankAccount,所以拥有IBankAccount的所有成员和她自己的成员。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: