zoukankan      html  css  js  c++  java
  • 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接口,也就是都具有接口所规划的功能(这里所注重的是这些功能在类中必须能实现),在类中要实现这些功能可以由不同的代码完成.

  • 相关阅读:
    文件类型的判断
    VS 2003 源码配置管理(subversion+apache)
    DataView
    sql server 挂起的文件操作
    关于权限设计的轻量级实现
    各种类型文件在SQL Server中存储的解决方案
    免费或开源的项目管理工具
    UML中的用例(Use Case)概念分析及实例
    大对象的存储
    用js实现同一页面多个运动效果
  • 原文地址:https://www.cnblogs.com/zhijianliutang/p/2250663.html
Copyright © 2011-2022 走看看