首页 理论教育 C#编程入门手册-C#编程新手自学手册

C#编程入门手册-C#编程新手自学手册

时间:2023-10-22 理论教育 版权反馈
【摘要】:如果是多重继承,为解决多个无关基接口中同名或同签名的接口成员的混乱问题,可以使用显式强制转换来解决。例如,有4个名为mm、nn、zz和tt的接口。图10-8 接口关系结构图上述结构关系的对应代码如下:

C#编程入门手册-C#编程新手自学手册

访问接口成员的方式和访问类成员的方式类似,有如下两种方式:

1)使用点运算符“.”

使用点运算符的具体格式如下:

接口类型.接口成员

2)使用“[]”对

使用“[]”对的具体格式如下:

接口类型[索引器参数列表]

1.多接口处理

如果只是单一继承接口,则成员的查找、方法的调用和索引器的访问规则和类的完全相同。如果是多重继承,为解决多个无关基接口中同名或同签名的接口成员的混乱问题,可以使用显式强制转换来解决。看下面的一段代码:

978-7-111-36370-5-Part02-361.jpg

978-7-111-36370-5-Part02-362.jpg

在上述代码中,接口zz多重继承了接口mm和nn。当在lei类中使用“x.num(1)”和“x.num=1”调用方法num()时,因为不能确定究竟调用的是mm的方法还是nn的方法,所以会出现运行错误。解决上述错误的方法是,使用显式强制转换,对上述类lei的代码进行如下修改:(www.xing528.com)

978-7-111-36370-5-Part02-363.jpg

2.重载类型决策

在选择调用处理方法时,会遵循参加重载类型决策原则。看下面的一段代码:

978-7-111-36370-5-Part02-364.jpg

在上述代码中,虽然“x.num(1)”和“x.num(1.1)”没有经过显式强制转换,但是两者的参数类型是不同的,一个是int类型的1,一个是double类型的1.1。所以上述代码运行后,会自动调用对应的处理方法。

3.直观隐藏

直观隐藏是指在多重继承接口中,如果某成员在任意一个路径中被隐藏,那么它会在所有的访问路径中被隐藏。例如,有4个名为mm、nn、zz和tt的接口。其中mm是nn和zz的基接口,而nn和zz是tt的基接口。如果重新定义接口nn的基接口mm内的方法chuli(),那么被隐藏后的方法chuli()在其他接口内也是被隐藏的。上述接口的关系如图10-8所示。

978-7-111-36370-5-Part02-365.jpg

图10-8 接口关系结构图

上述结构关系的对应代码如下:

978-7-111-36370-5-Part02-366.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈