// <summary> ///这个实例主要介绍类中对多种继承中的成员访问的问题,,在介绍接口的同时不得不提一提,接口的应用在多层的调用中,为了保证底层的类的实现。必须分好层次。防止“接口污染” ///
</summary>
public interface I_4_A //定义接口、包含一个方法F
{
string F(string A);
}
public interface I_4_B : I_4_A
{
new string F(string A); //此方法是对基接口中的方法重写的方法。在不影响基接口中方法的实现的话,可以在同样的方法前面加上一个new的关键字来实现方法的重构
}
public interface I_4_C : I_4_A
{
string T();
} /* 这个接口定义了一个新接口 继承与I_4_B和I_4_C,当然此处也隐含的响应的继承了I_4_A
那这里涉及的知识点就是在我们引用的时候该怎样的去调用里面的方法呢*/
public interface I_4_D : I_4_B, I_4_C { };
public class I_4_L {
public string Test(I_4_D thc)
//此类中的方法接受了接口I_4_D接口的定义的方法
{
thc.T(); //这个方法直接引用了接口 C定义的 T方法
thc.F("B 接口的方法");
//这个是直接引用方法F(),这里牵扯到一个问题,,就是我们在接口A中也同样定义了F()方法,此处访问的会是那个方法呢?
//。。这样记住一个点。在我们方法B中重写了方法F(),我们在访问中首先应用的就是接口B中的方法,,就如英语中的那个“就近原则” ((I_4_A)thc).F("A接口的方法");
//通过显示的引用在应用A中F的方法
((I_4_C)thc).F("A接口的方法");
//此处是通过c接口的方法直接调用A接口中的方法
((I_4_D)thc).F("B接口的方法");
//这样和第一种引用的方法是一样。。只不过是显示的应用了此处
}
}