只谈接口(interface)

接口只包含方法、委托或事件的签名。方法的实现是在实现接口的类中完成的(接口的命名以I为开头),如下面的示例所示:       
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();
    }
}
接口可以是命名空间或类的成员,并且可以包含下列成员的签名:方法、属性、索引器、事件,但不能是常量、域、操作符、构造函数或析构函数,而且不能包含任何静态成员。
接口定义创建新的定义空间,并且接口定义直 接包含的接口成员定义将新成员引入该定义空间。


对接口的一些认识:
1。接口提供一种规范,是对不同类中的共性的一种抽象,一种标准化,没有实例化,比如说有类狗、猫等等,他们都有一个共同的action:"call",那么我们就可以把这个cll的动作抽象出来,定义在接口中,在类中分别实现,有了标准,在以后的维护和扩展中减少很多工作量。
2。接口可以多重继承。
3。接口可以实现多态,For example:

   class UseInterface
    {
        interface Iinstrument
        {
            void Play();
        }
        class Violin : Iinstrument
        {
            public void Play()
            {
                Console.WriteLine("这是小提琴的演奏。");
            }
        }
        class Flute : Iinstrument
        {
            public void Play()
            {
                Console.WriteLine("这是长笛的演奏。");
            }
        }
        static void CallFoo(Iinstrument instrument)
        {
            instrument.Play();
        }
        public static void Main(string[] args)
        {
            Violin v = new Violin();
            Flute f = new Flute();
            CallFoo(v);
            CallFoo(f);
            Console.ReadLine();
        }
    }

4。接口的使用问题,接口的优点是很明显的了,但是我们不能为了接口而接口,如果滥用接口,造成资源的浪费。在不同的类中共性越多的,就越要定义位接口,但是如果实现是一样的话就可以考虑用抽象类了,而不是接口了。
5。上面提到抽象类,在实际的使用,到底是使用抽象类还是使用使用接口,需要更具不同的情况做不同的选择,没有一定的说法。
      这里没有具体的将接口的怎么运用说明,只是将自己的理解说明一下,肯定也有认识不足的地方。。。
      理论知识,最终还是需要运用到实践中,才会有更加深刻的认识,积累经验。。。

posted @ 2007-05-24 16:01  独孤求败  阅读(268)  评论(0编辑  收藏  举报