正文

当你实现接口和抽象成员时来避免矛盾的名字(C#版)2007-10-12 16:51:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/goalbell/30038.html

分享到:

当你实现多个接口或单一接口时(C#允许多接口继承)和抽象成员时,如何来避免拥有矛盾名字的现象呢?先看下面的代码: ie: //第一个接口的声明 public interface Iinterface1{  void xyz();} //第二个接口的声明 public interface Iinterface2{ void xyz();} //抽象类的声明 public abstract class MyAbstract{  public abstract void  xyz();   } //定义一个衍生类来继承接口和抽象类 class Derived:Iinterface1,Iinterface2,MyAbstract{} //在Derived类中为继承的抽象类和接口成员提供函数定义 //接口1的xyz()方法  void IInterface1.xyz() {  Console.WriteLine("调用接口1的xyz()方法. \n"); } //接口2的xyz()方法  void IInterface2.xyz(){  Console.WriteLine("调用接口2的xyz()方法. \n");} //抽象类的xyz()方法 public override void xyz() {  Console.WriteLine("调用抽象类的xyz()方法. \n"); } 看到这里,大家都应该明白怎样实现了。 接下来就为整个Derived类定义入口点并实例化它。 ie: //实例化Derived对象,声明接口变量并指定Derived类对象给接口  static void Main(string[] args) {  Derived derived = new Derived();  IInterface1 interface1 = new Derived();  IInterface2 interface2 = new Derived();} //你应该可以获得抽象类和接口的成员函数了,并且可以避免名字的矛盾冲突。 derived.xyz();  interface1.xyz();  interface2.xyz(); 运行结果如下: 调用接口1的xyz()方法. 调用接口2的xyz()方法. 调用抽象类的xyz()方法.   最后给出全部代码的实现方式:  using System;namespace Example{ public interface IInterface1 {  void xyz(); } public interface IInterface2 {  void xyz(); } public abstract class MyAbstractClass {  public abstract void xyz(); }    class Derived : MyAbstractClass,IInterface1,IInterface2 {   [STAThread]  private static void Main(string[] args)  {   Derived derived = new Derived();   IInterface1 interface1 = new Derived();   IInterface2 interface2 = new Derived();   derived.xyz();   interface1.xyz();   interface2.xyz();    Console.WriteLine("请按回车键退出.");   Console.ReadLine();  }    void IInterface1.xyz()  {   Console.WriteLine("调用接口1的xyz()方法. \n");  }  void IInterface2.xyz()  {   Console.WriteLine("调用接口2的xyz()方法. \n");  }  public override void xyz()  {   Console.WriteLine("调用抽象类的xyz()方法. \n");  } }} 结论: 当它们拥有相同名字的时候,一个用户可以获取两个接口和抽象的方法,从而避免名字相同而冲突的问题。 Enjoy!

阅读(1520) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册