c#面向对象系列3(接口)

接口包含方法、属性、事件、索引等一系列声明,可以让类来实现指定的接口,这个类来实现指定的接口,这个类必须为接口中指定的生命来定义代码。结构也可以实现接口,实现方法与类相同。

接口的定义

修饰符  interface   接口名

{

    接口体

}

接口的说明如下:

修饰符:控制接口的存取限制符,与类相同。对接口比较适合的存取限制符是public.

接口名:所声明接口的名称。习惯上,接口用大写的I开始,跟在I后面的字符也是大写的,例IDrivable.

接口体:用于定义接口的成员。接口的成员可以是方法,属性,索引,和事件,不包含字段。所有的成员都不包含访问修饰符,所有的成员都隐式的声明为public,原因是接口只是一组声明——实际实现的成员的代码都定义在实现接口的类或接口中。

在现实生活中,所有的汽车都有启动和停止这2个功能,我们可以分别用start()和Stop()方法表示。现在我们定义一个所有汽车类的接口IDrivable,这个接口声明了上述功能,下面是这个接口的定义:

public  interface  IDrivable

{

                  //声明方法

                   void    Start();

                   void     stop();

}

接口的实现

接口是由类来实现的。实现的方法有点像类的派生,在类后面加上一个冒号(;),后面跟上接口名,然后再类中为接口提供接口所声明项的实现代码。

例子:

public   Car:IDrivable

{

                 //在类中为接口声明的start(),stop()编写实现代码

                public   void   Start()

                {

                            Console.WriteLine("车辆启动");

                }

                public   void   Stop()

                 {

                                  Console.WriteLine("汽车停止");

                 }

}

public  Truck:IDrivable

{

                  //在本类中为接口声明的Start(),stop()编写实现代码

                    public  void   Start()

                   {

                               Console.writeLine("卡车启动");

                   }

                  public   void   Stop()

                  {

                               Console.WriteLine("卡车停止");

                   }

}

接口只是对某些功能的约定,这些功能的实现由类来完成,至于类如何完成,完全有实现接口的类来决定。在上面的例子中,car类与Truck类都是汽车,但他们如何启动有他们自己决定,只是都实现了IDrivable接口,也就是都具有接口所规划的功能(这里所注重的是这些功能在类中必须能实现),在类中要实现这些功能可以由不同的代码完成.

posted @ 2011-11-16 09:28  指尖流淌  阅读(251)  评论(0编辑  收藏  举报