接口

  接口泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法,使其能被修改内部而不影响外界其他实体与其交互的方式,就如面向对象程序设计提供的多重抽象化。

 

c#中的接口

定义:接口是一种约束形式,其中只包括成员定义,不包含成员实现的内容。

目的:接口的主要目的是为不相关的类提供通用的处理服务,由于C#中只允许树形结构中的单继承,即一个类只能继承一个父类,所以接口是让一个类具有两个以上基类的唯一方式。

声明:接口声明的方式与声明类的方式相似,但使用的关键字interface,而不是 class。

 

接口只包含方法委托事件的签名。方法的实现是在实现接口的类中完成的,如下面的示例所示:

 

 

 

接口成员的定义:与类成员的定义相似,但是要注意
不允许使用访问修饰符(public,private,protected 或 internal),所有的接口成员都必须是公共的;
接口成员不能包含代码实体;
接口成员不能定义字段成员;
接口成员不能用关键字static,virtual,abstrac t或 sealed 来定义;
类型定义成员是禁止的。
如果要隐藏继承了基接口的成员,可以用关键字new来定义它们,例如:
 
interface IMyBaseInterface
{ void DoSomething();
}
interface IMyDerivedInterface: IMyBaseInterface
{ new void DoSomething();
}
 
备注 :
接口可以是命名空间或类的成员,并且可以包含下列成员的签名:
方法属性索引器事件一个接口可从一个或多个基接口继承。
当基类型列表包含基类和接口时,基类必须是列表中的第一项。
实现接口的类可以显式实现该接口的成员。显式实现的成员不能通过类实例访问,而只能通过接口实例访问,例如:
有关显式接口实现的更多详细信息和代码示例,请参见显式接口实现(C# 编程指南)。
示例
下面的示例演示了接口实现。在此例中,接口IPoint 包含属性声明,后者负责设置和获取字段的值。Point 类包含属性实现。
// keyword_interface_2.cs
// Interface implementation
using System;
interfaceIPoint
{
// Property signatures:
int x{get; set;}
int y{get; set;}
}
class Point : IPoint
{
// Fields:
private int _x;
private int _y;
// Constructor:
public Point(int x, int y)
{
_x = x;
_y = y;
}
// Property implementation:
public int x
{
get { return _x; }
set { _x = value; }
}
public int y
{
get { return _y; }
set { _y = value; }
}
}
class MainClass
{
static void PrintPoint(IPoint p)
{
Console.WriteLine("x={0}, y={1}", p.x, p.y);
}
static void Main()
{
Point p = new Point(2, 3);
Console.Write("My Point: ");
PrintPoint(p);
}
输出My Point: x=2, y=3
 
 
来自:http://baike.baidu.com/view/159864.htm 和一个视频 。

 

 

posted @ 2013-07-23 13:33  Totonemar  阅读(187)  评论(0编辑  收藏  举报