C#关于接口的显示实现接口

接口interface

先回顾下接口的定义:接口语法与定义抽象类相同,但接口不允许提供任何成员的实现方法,也不能有构造函数、字段和运算符重载,只允许包含方法成员(方法、属性、索引器和事件的声明)。

接口之间也可以继承,继承的接口可以添加属于自己的方法,继承接口的派生类需要实现接口内的所有方法

那么问题来了,当一个类同时继承了两个接口且两个接口内有相同名字的方法,如IGrammer3继承自接口IGrammer1和接口IGrammer2,而IGrammer1IGrammer2内同时有方法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();

 

posted @ 2020-12-07 16:19  穷在闹市  阅读(221)  评论(0)    收藏  举报