12.4 实现多个接口
在C#中一个类不能从多个类继承,但可以实现多个基接口,而一个接口可以从多个接口继承。在12.2节我们学习了实现单个接口的情况,本节将学习一个类实现多个接口。顾名思义,实现多个接口就意味着,在实现类中要实现所有实现的接口规定的所有成员,也意味着对于同一个类,可以使用它实现的任意接口类型来引用它的实例,但使用不同的接口类型引用,直接影响该类型的可用成员。例如类A实现了接口Interface1和Interface2,当使用Interface1的类型引用时,只有Interface1定义的成员可见并可用;使用Interface2的类型引用时也只能调用Interface2接口定义的成员。
下面来看一个例子,如代码清单12-7所示。在这个例子中,先定义两个接口,再定义一个类实现它们,最后再分别通过两种接口类型的引用调用类的实例。
代码清单12-7 实现多个接口
1 interface ISample
2{
3 void Method1();
4}
5
6 interface ISample2
7{
8 void Method2();
9}
10
11 class ClassOne:ISample,ISample2
12{
13 public void Method1()
14{
15 System.Console.WriteLine("from ClassOne.Method1()");
16}
17
18 public void Method2()
19{
20 System.Console.WriteLine("from ClassOne.Method2()");
21}
22}
23
24 class ClassExample
25{
26 public static void Main()
27{
28 ISample sample1=new ClassOne();
29 ISample2 sample2=new ClassOne();
30 sample1.Method1();
31 sample2.Method2();
32}
33}
上述代码的执行结果如下:
from ClassOne.Method1()
from ClassOne.Method2()
关于代码清单12-7的说明如表12-4所示。
上述代码使用图示说明,如图12-7所示。
图 12-7 实现多个接口