积极答复者
以下这段是从教程下摘录的,不知道自己理解的对不对。请高人正解:

问题
-
以下这段是从教程下摘录的,不知道自己理解的对不对。请高人正解:
接口篇:
在多重继承接口中遵循直观隐藏规则,即如果成员在任何一个访问路径中被隐藏,则其在所有访问路径中都被隐藏。
在下面的示例中IBase.F成员被ILeft.F成员隐藏,因此即使使在通过IRight的访问路径中IBase.F似乎没有被隐藏,
调用d.F(1)仍选择ILeft.F。由于从IDerived经ILeft到IBase的访问路径隐藏了IBase.F,因此该成员从IDerived经IRight
到IBase的访问路径中也被隐藏:interface IBase
{
void F(int i );
}
interface ILeft:IBase
{
new void F(int i );
}
interface IRight:IBase
{
void G( );
}
interface IDerived:ILeft,IRight{}
class A
{
void Test(IDerived d)
{
d.F(1); //调用ILeft.F 因为隐藏了IBase类的F方法,所以用ILeft.F
((IBase)d).F(1); //调用IBase.F 因为强制转换成了IBase,所以用IBase.F
((ILeft)d).F(1); //调用ILeft.F
((IRight)d.)F(1) //调用IBase.F 虽然d是IDerived接口类型(继承ILeft,IRight)
但被强制转换成了IRight接类型,而IRight中没有
所要的处理方法,从而查找IRight的基类,也就是
} IBase中的F方法了。IBase.F