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的所有成员和她自己的成员。
如果一个类派生于一个接口,它就会执行某些函数。
声明接口在语法上与声明抽象类完全相同,但不允许提供接口中任何成员的执行方式。一般情况下,接口中只能包含方法、属性、索引器和事件的声明。不能实例化接口,所以接口不能有构造函数或字段,也不允许包含运算符重载。不允许声明成员上的修饰符,成员总是公共的。
定义和实现接口
接口名称传统上以字母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的所有成员和她自己的成员。
相关文章推荐
- C#2005 .NET3.0高级编程学习笔记————命名空间
- C#2005 .NET3.0高级编程学习笔记———.NET体系结构
- C#2005 .NET3.0高级编程学习笔记————类的函数成员(构造函数,只读字段)
- C#2005 .NET3.0高级编程学习笔记————结构,部分类,静态类,Object类
- C#2005 .NET3.0高级编程学习笔记———C#基础
- C#2005 .NET3.0高级编程学习笔记————类和结构,类的数据成员,类的函数成员(方法、属性)
- C#2005 .NET3.0高级编程学习笔记————继承
- C#2005 .NET3.0高级编程学习笔记————流控制
- C#2005 .NET3.0高级编程学习笔记————类和结构,类的数据成员,类的函数成员(方法、属性)
- C#2005 .NET3.0高级编程学习笔记————编程规则
- C#2005高级编程Chapter11内存管理和指针学习笔记
- C#高级编程 学习笔记(一) 第一个C#程序
- C#学习笔记:GDI图形高级编程(2)——关于Brush类
- C#学习笔记:GDI图形高级编程(1)——如何将图形画到控件上
- C#2005 .NET3.0高级编程学习笔记————枚举
- C#可扩展编程之MEF学习笔记(五):MEF高级进阶
- C#与.NET4 高级程序设计-----委托、事件 学习笔记
- c#网络编程学习笔记02_Tcp编程(上)
- JavaScript高级编程(学习笔记)
- C#学习笔记24——数据库编程