C# - 接口_显式接口实现

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 
 6 /*----------------------------------------------------------------------------
 7  * 显式实现接口:
 8  *      1. 一个类继承了两个以上的接口
 9  *      2. 接口中存在相同名称的方法
10  *      3. 通过【接口.方法()】格式在类中显示实现
11  *      4. 将类的实例化的对象传递给不同的接口对象, 则调用
12  *          的是不同接口下各自的方法
13  *      5. 类中显式实现接口的方法前不能使用任何修饰词
14  *      6. 显示实现的成员都默认为私有, 即不能通过类实例化
15  *          对象在类外部直接调用, 正确的访问方式是通过类对
16  *          像显式的转换为对应的接口, 通过接口来访问方法
17 -----------------------------------------------------------------------------*/
18 namespace 接口_显式接口实现
19 {
20     // 定义接口: IChineseGreeting
21     interface IChineseGreeting
22     {
23         void SayHello();
24     }
25 
26     // 定义接口: IAmericanGreeting
27     interface IAmericanGreeting
28     {
29         void SayHello();
30     }
31 
32     // 实现接口: Speaker类
33     public class Speaker : IChineseGreeting, IAmericanGreeting
34     {
35         // 接口: IChineseGreeting 显示实现
36         void IChineseGreeting.SayHello()
37         {
38             Console.WriteLine("你好!");
39         }
40 
41         // 接口: IAmericanGreeting 显示实现
42         void IAmericanGreeting.SayHello()
43         {
44             Console.WriteLine("Hello!");
45         }
46     }
47 
48     class Program
49     {
50         static void Main(string[] args)
51         {
52             Speaker speaker = new Speaker();
53             
54             IChineseGreeting iChineseG = (IChineseGreeting)speaker;
55             iChineseG.SayHello();           // 输出【"你好"】
56 
57             IAmericanGreeting iAmericanG = (IAmericanGreeting)speaker;
58             iAmericanG.SayHello();        // 输出【"Hello"】
59 
60             Console.ReadLine();
61         }
62     }
63 }

 

posted @ 2016-04-06 14:33  C/C++/Python/Java  阅读(366)  评论(0编辑  收藏  举报