声明接口
声明接口在语法上和声明抽象类完全相同,例如这里有一个银行账户的接口:
public
interface
IBankAccount
{
void PayIn( decimal amount);
bool Withdraw( decimal amount);
decimal Balance
{
get ;
}
}
{
void PayIn( decimal amount);
bool Withdraw( decimal amount);
decimal Balance
{
get ;
}
}
注意:接口中只能包含方法、属性、索引器和事件的声明。不允许声明成员上的修饰符,即使是pubilc都不行,因为接口成员总是公有的,也不能声明为虚拟和静态的。如果需要修饰符,最好让实现类来声明。
使用接口的例子
这是书上的一个简单的例子,但足以说明接口的使用方法。
一个银行账户的接口,两个不同银行账户的实现类,都继承于这个接口。接口声明如上。下面是两个账户类:
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);
}
}
{
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);
}
}