显示实现接口的作用:解决方法重名问题。
下面例子中,Student类同时继承了两个接口,但两个接口有一个共同名称的方法(有不同的功能),实现接口时只能实现一个,想两个都实现就用显示实现接口。
class Program { static void Main(string[] args) { Student student = new Student(); student.Fly(); } } public interface IFace2 { void Fly(); } public interface IFace1 { void Fly(); } public class Student : IFace1,IFace2 { public void Fly() { Console.WriteLine("IFace1的实现"); } }
显示实现接口:
class Program { static void Main(string[] args) { Student student = new Student(); student.Fly(); IFace2 face2 = new Student(); face2.Fly(); } } public interface IFace2 { void Fly(); } public interface IFace1 { void Fly(); } public class Student : IFace1,IFace2 { public void Fly() { Console.WriteLine("IFace1的实现"); } void IFace2.Fly() { Console.WriteLine("IFace2的实现"); } }
显示接口没有访问修饰符,默认私有的,显示接口实现时是:接口名.方法名
因为显示实现接口默认是private,所以用接口变量来调用。