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 }