要做项目了,想把接口用上不知道该怎么用,看各位大哥们都用过,光知道接口类似定义个方法,但是不实现它,谁想用的时候就重写一下,就可以用了,大家能举个例子吗???为什么要这样用,即使继承了这个接口,把方法实现了,似乎也跟不用接口没什么区别吧!!!希望高手能贴个例子!!

解决方案 »

  1.   

    public class Temperature : IComparable {
        /// <summary>
        /// IComparable.CompareTo implementation.
        /// </summary>
        public int CompareTo(object obj) {
            if(obj is Temperature) {
                Temperature temp = (Temperature) obj;            return m_value.CompareTo(temp.m_value);
            }
            
            throw new ArgumentException("object is not a Temperature");    
        }    // The value holder
        protected int m_value;    public int Value {
            get {
                return m_value;
            }
            set {
                m_value = value;
            }
        }    public int Celsius {
            get {
                return (m_value-32)/2;
            }
            set {
                m_value = value*2+32;
            }
        }
    }
      

  2.   

    如果你了解一下java 的j2ee就会知道接口的强大了, sun只是定义了一整套j2ee的接口, ibm,weblogic等实现了这套借口推出了自己的高性能j2ee平台,而开发人员只需要理解sun定义接口怎么用就可以了。在做架构设计时,接口很有用。他不是用来做代码复用的。
      

  3.   

    接口是一组行为规范,他规定了类的功能!
    比如:我们日常生活的USB接口,为什么我们要用USB接口呢?
    那么USB接口就提供了一种规范,凡是各种使用USB接口生产的硬件设备都能通过插入主板的USB接口与我们的计算通信!
    如:USB鼠标,USB摄像头,USB优盘,USB打印机,USB扫描仪,USB移动硬盘等等.
    要是你拿个PS2的鼠标能插入主板的USB接口吗?显然是不可以的.
      那么我们的程序也是如此.我们定义接口,让别的类来针对我们定义的接口编程,实现接口里的功能!那么可以有许多类可以实现这个接口.并且各个类实现的功能可能都不一样.如我们的USB移动硬盘只实现USB的读数据和写数据,USB摄像头只实现显示图像.
      并且有肋于我们的程序扩展,例如将来我们可能要通过USB接口制造出一种USB迷你音响.那么我们只要把接口做成USB的就可以了,而我们的主板并不需要了解USB音响是怎么工作的..
      关于接口的知识很多,在这里也说不完.希望我这点例子能对你带来帮助!比如还有:接口实现了对象与对象的松藕合,让对象之间的依赖降到最底!
      

  4.   

    接口只包含方法、委托或事件的签名。方法的实现是在实现接口的类中完成的,如:
     interface ISampleInterface
    {
        void SampleMethod();
    }class ImplementationClass : ISampleInterface
    {
        // Explicit interface member implementation: 
        void ISampleInterface.SampleMethod()
        {
            // Method implementation.
        }    static void Main()
        {
            // Declare an interface instance.
            ISampleInterface obj = new ImplementationClass();        // Call the member.
            obj.SampleMethod();
        }
    }
    接口可以是命名空间或类的成员.
    一个接口可从一个或多个基接口继承。
    当基类型列表包含基类和接口时,基类必须是列表中的第一项。
    实现接口的类可以显式实现该接口的成员。显式实现的成员不能通过类实例访问,而只能通过接口实例访问
      

  5.   

    面向对象的基础概念有过设计模式经验的程序员一般都对面向接口的编程有所了解楼上已经说了那么多了,推荐楼主看看 "你必须知道的.NET"这本电子书
      

  6.   

    楼上几位说得对,接口其实可以认为是一组规范。所有继承了接口的类(在 java 中的说法是“实现”)同时也就有了接口的类型。值得注意的是,接口这种模式不是为了实现,而是为了增强代码模块的使用来设计的。在面向对象的编程中,模块的调用者应该尽量的缩小对象的类型,而使用接口则可以方便的达到这个目标。比如说,在现实世界,可能存在这样的情况:我需要一位司机为我开车。在这个问题中,我需要的是一位“会开车”的人,而达到这个要求的人可能是个男人,也可能是个女人,也可能是退役军人等。如果用C#表示,则我需要的这位司机可能是“男人”、“女人”或者“退役军人”这个类或者子类的对象。而其实对我而言,我只关心这个对象是不是“会开车”,而其它的类型不必关心。在这个模型中,可以把“会开车”设计为一个接口,“男人”、“女人”和“退役军人”设计成一个类。这样,任何实现了“会开车”接口的类的对象都可以被我使用,而不用关心他具体是什么类型,这样做减小了类的使用者(也就是我)对类型的依赖性,从而增强了灵活性。
    另外,我认为,程序中应该用到程序语言哪方面的功能,是应实际需要而定,而不是先确定“想用接口”,再来设计。
      

  7.   


    单继承的语言(C#、Java)中,接口不可以通过公共类替代