接口案例2(同名的外部调用)

/// <summary>

///这个是第二个接口的引用,<1> 外部对接口的访问,如果出现同名的参数或者方法,必须的指出他的父接口,即必须为显示的调用

///<2> 特别是在不清楚具体情况的前提下,最后是做的保守一点

/// </summary> public interface I_3_A  

//此处定义一个接口包含一个方法J,一个属性

Count {   

  int Count { get; set; }    

 int J(int j);

}

public interface I_3_B   //这里面也定义第二个接口包含一个方法Count,一个属性J,但注意这和上一个接口中的方法和属性同名称 {     void Count(int i);  

   double J(double j);

}

public interface I_3_C : I_3_A, I_3_B

 { }

public class I_3_L

{    

 public void Sum(I_3_C thc)  

   {      

   thc.Count();   //错误,具有二义性        

 thc.Count = 1;  //错误。具有二义性       

  thc.Count(1);  //错误,具有二义性

 

        ((I_3_A)thc).Count = 1;  //正确      

   ((I_3_B)thc).Count(1);

        ((I_3_A)thc).J(1);      

   ((I_3_B)thc).J(1);

        thc.J(1.0);  

  //这里面还牵扯到一个隐式调用的问题,当我们传入的参数为float类型的参数,这样的话隐式调用的就是接口I_3_B中的J这个方法、同样的道理下面这个方法就是调用的方法I_3_A     

    thc.J(1);    

 }

 }

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