接口解释:接口只包含只有方法,属性,索引器(有参属性),事件四种成员。方法的实现是在实现接口的类中完成的。接口方法默认是public类型,不能显示指定方法的public类型。接口或抽象类都不能实例化。


接口实现:接口实现分显示实现和隐示实现。

//定义接口

    interface IGraphic
{
float getArea();
}

//隐士隐示实现接口

    public class Rectangle : IGraphic
{
private float _width = 10;
private float _height = 10;


#region IGraphic 成员

public float getArea()
{
return _width * _height;
}

#endregion

}

//两种方式均可以调用接口方法

 static void Main(string[] args)
{
//调用方式1
IGraphic grahic = new Rectangle();
float area = grahic.getArea();
Console.Write(area.ToString());
Console.Read();

//调用方式2
Rectangle rectangle = new Rectangle();
area = rectangle.getArea();
Console.Write(area.ToString());
Console.Read();
}



为了限制使用者只能通过接口调用,可以显示实现接口

namespace ConsoleApplication1
{
interface IGraphic
{
float getArea();
}

public class Rectangle : IGraphic
{
private float _width = 10;
private float _height = 10;



#region 显示实现 IGraphic 成员

float IGraphic.getArea()
{
return _width * _height;
}
#endregion


//#region 隐示实现 IGraphic 成员

//public float getArea()
//{
// return _width * _height;
//}
//#endregion

}

class Program
{
static void Main(string[] args)
{
//调用方式1
IGraphic grahic = new Rectangle();
float area = grahic.getArea();
Console.Write(area.ToString());
Console.Read();

////调用方式2 已经通不过编译了
//Rectangle rectangle = new Rectangle();
//float area = rectangle.getArea();
//Console.Write(area.ToString());
//Console.Read();
}
}
}



总结:从接口的定义方面来说,接口其实就是类和类之间的一种协定,一种约束。从调用者角度来说,如果他知道了某个类是继承于IGraphic接口,那么他就可以放心大胆的调用
getArea方法。再就是如果接口显示实现,就可以限制调用者只能通过接口调用了。

posted on 2011-12-22 18:06  sdhht  阅读(1299)  评论(9)    收藏  举报