C#关于接口的显示实现接口
接口interface
先回顾下接口的定义:接口语法与定义抽象类相同,但接口不允许提供任何成员的实现方法,也不能有构造函数、字段和运算符重载,只允许包含方法成员(方法、属性、索引器和事件的声明)。
接口之间也可以继承,继承的接口可以添加属于自己的方法,继承接口的派生类需要实现接口内的所有方法。
那么问题来了,当一个类同时继承了两个接口且两个接口内有相同名字的方法,如类IGrammer3继承自接口IGrammer1和接口IGrammer2,而IGrammer1和IGrammer2内同时有方法void Fun1(),此时可以同时实现或者分别使用显示实现接口来实现接口内的方法:
同时实现:
interface IGrammer1 {void Fun1();} interface IGrammer2 {void Fun1();} class IGrammer3:IGrammer1,IGrammer2 { void Fun1() { Console.WriteLine(“此时是同时实现两个接口的Fun1”); } }
这个时候调用类IGrammer3中的Fun1则直接使用父类或子类声明的实例调用即可。
IGrammer3 g1 = new IGrammer3(); g1.Fun1();
显示实现接口:
class IGrammer3:IGrammer1,IGrammer2 { void IGrammer1.Fun1() { Console.WriteLine(“此时实现的是IGrammer1的Fun1”); } void IGrammer2.Fun1() { Console.WriteLine(“此时实现的是IGrammer2的Fun1”); } }
这个时候调用不同的方法需要用各自的父类接口进行声明:
IGrammer1 g1 = new IGrammer3(); g1.Fun1(); IGrammer2 g2 = new IGrammer3(); g2.Fun1();

浙公网安备 33010602011771号