1、C#接口实例应用的的深入探讨interface IPrint void Print(); class A : IPrint public void Print() System.Console.WriteLine(“A“); class B : IPrint public void Print() System.Console.WriteLine(“B“); class AppMain public static void Print(IPrint obj) obj.Print(); public static void Main() Print(new A(); / display A Pr
2、int(new B(); / display B 在这个例子中,IPrint 接口中定义了 Print 方法, 但没有实现方法体.类 A 和类 B 都继承了 IPrint 接口, 并且实现了不同的 Print 方法.在 AppMain 中调用 AB,获得不同的打印结果C#接口实例应用问题的提出,假设我们公司有两种程序员:VB 程序员,指的是用 VB写程序的程序员,用 clsVBProgramer这个类表示;Delphi 程序员指的是用 Delphi写程序的程序员,用 clsDelphiProgramer这个类来表示。每个类都有一个 WriteCode()方法。C#接口实例定义如下:1. cla
3、ss clsVBProgramer() 2. 3. 4. WriteCode() 5. 6. /用 VB语言写代码; 7. 8. 9. 10. 11. class clsDelphiProgramer() 12. 13. 14. WriteCode() 15. 16. /用 Delphi语言写代码; 17. 18. 19. 现在公司来了一个项目,要求派某个程序员写一个程序。C#接口实例20. class clsProject() 21. 22. 23. WritePrograme(clsVBProgramer programer)/用 VB写代码 24. 25. programer.Write
4、Code(); 26. 27. WritePrograme(clsDelphiProgramer programer) 28. /重载方法,用 Delphi写代码 29. 30. programer.WriteCode(); 31. 32. 33. 在主程序中我们可以这样写:C#接口实例:34. main() 35. 36. clsProject proj=new clsProject; 37. /如果需要用 VB写代码 38. clsVBProgramer programer1=new clsVBProgramer; 39. proj.WritePrograme(programer1); 4
5、0. /如果需要用 Delphi写代码 41. clsDelphiProgramer programer2=new clsDelphiProgramer; 42. proj.WritePrograme(programer2); 43. 但是如果这时公司又来了一个 C#程序员,我们怎么改这段程序,使它能够实现用 C#写程序的功能呢?我们需要增加一个新类 clsCSharpProgramer,同时在此 clsProject这个类中要再次重载 WritePrograme(clsCSharpProgramer programer)方法。这下麻烦多了。如果还有 C程序员,C+程序员,JAVA 程序员呢。
6、麻烦大了!但是如果改用接口,就完全不一样了,首先声明一个程序员接口:C#接口实例:44. interface IProgramer() 45. 46. WriteCode(); 47. 然后声明两个类,并实现 IProgramer接口:48. class clsVBProgramer():IProgramer 49. 50. 51. WriteCode() 52. 53. /用 VB语言写代码; 54. 55. 56. 57. 58. class clsDelphiProgramer():IProgramer 59. 60. 61. WriteCode() 62. 63. /用 Delphi语
7、言写代码; 64. 65. 66. 67. 对 clsProject这个类进行一下修改: 68. class clsProject() 69. 70. 71. WritePrograme(IProgramer programer) 72. 73. programer.WriteCode();/写代码 74. 75. 76. 77. 78. main() 79. 80. clsProject proj=new clsProject; 81. IProgramer programer; 82. /如果需要用 VB写代码 83. programer=new clsVBProgramer; 84. proj.WritePrograme(programer); 85. /如果需要用 Delphi写代码 86. programer=new clsDelphiProgramer; 87. proj.WritePrograme(programer); 88. 如果再有 C#,C,C+,JAVA 这样的程序员添加进来的话,我们只需把它们相关的类加进来,然后在 main()中稍做修改就 OK了。扩充性特别好!另外我们如果把 clsProject这个类封成一个组件,那么当我们的用户需要要扩充功能的时候,我们只需要在外部做很小的修改就能实现,可以说根本就用不着改动我们已经封好组件!