标签:
1、接口就是一组抽象成员的集合。如:
Public interface IDbConnection : IDisposable{}
2、判断一个指定类型是否支持一个接口可以使用try/catch、as、is关键字。
3、接口可以作为参数、也可以作为方法的返回值,同意的接口可以由多个类型实现。
4、因接口是一组命名的抽象成员,因此对于每个支持该行为的类型中的每个接口方法,都需要输入定义和实现。
5、一个类或结构可以实现许多接口,因此,我们很有可能他会实现包含同名成员的接口,故需要处理命名冲突。
如:
//绘制到表单上 public interface IDrawToForm { void Draw(); } //绘制到内存中 public interface IDrawToMemory { void Draw(); } //呈现到打印机 public interface IDrawToPrinter { void Draw(); }
上述中每一个接口都定义了Draw()方法且名称相同(都没有参数)。
class Octagon : IDrawToForm, IDrawToMemory, IDrawToPrinter { //对某个接口显示绑定Draw() void IDrawToForm.Draw() { Console.WriteLine("Drawing to form.."); } void IDrawToMemory.Draw() { Console.WriteLine("Drawing to memory.."); } void IDrawToPrinter.Draw() { Console.WriteLine("Drawing to printer.."); } }
显示实现接口成员,大致模式可以归结为:
returnType InterfaceName.MethodName(params)
但是使用这种语法时不能提供访问修饰符,先是实现的成员总是自动为私有的。如下就是错误的:
//错误,不能访问修饰符 public void IDrawToForm.Draw() { Console.WriteLine("Drawing to form.."); }
6、接口类型可多重继承,也就是一个接口可以扩展多个基接口。
7、接口在以下情况中特别有用:
*只有一个层次结构,但是只有一部分派生类支持某个公共行为;
*需要构建的公共行为跨多个层次结构,而且除了System.Object以外,没有其他公共父类。
标签:
原文地址:http://www.cnblogs.com/xiangyueqiaomai/p/5685562.html