日期:2014-05-20  浏览次数:20931 次

多重接口问题
namespace   ConsoleApplication2
{
        interface   Imy1
        {
                  void   disp1();
                  void   disp2();
        }

        interface   Imy2
        {              
                void   disp2();
        }

        class   Program   :   Imy1,Imy2
        {
                public   void   disp1()
                {
                        Console.WriteLine( "1 ");
                }
                public   void   disp2()
                {
                        Console.WriteLine( "2 ");
                }

                static   void   Main(string[]   args)
                {
                        Program   p   =   new   Program();
                        p.disp1();
                        p.disp2();
                }
        }
}

类Program的disp2实现了那个接口?

------解决方案--------------------
两个接口都是实现了的.
测试如下:
static void Main(string[] args)
{
Program p = new Program();
p.disp1();
p.disp2();

System.Console.WriteLine(p is Imy1);
System.Console.WriteLine(p is Imy2);
}
分别输出:
1
2
true
true
------解决方案--------------------
接口只是一个声明,告诉系统你是怎么看待这个对象的。
------解决方案--------------------
2个同时实现.
说白了接口只是限制你必须要有一个实现函数,在编译期间会帮你检查关系.但是真正使用实例的时候,只关心实例对象所拥有的方法,并不关心这个方法是从那里来的.