pojia

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

一:接口

  显式实现接口;

  为了实现接口,类可以定义显式接口成员执行体(Explicit interface member implementations)。显式接口成员执行体可以是一个方法、一个属性、一个事件或者是一个索引指示器的定义,定义与该成员对应的全权名应保持一致。

using System ;
interface ICloneable {
 object Clone( ) ;
}
interface IComparable {
 int CompareTo(object other) ;
}
class ListEntry: ICloneable, IComparable {
 object ICloneable.Clone( ) {…}
 int IComparable.CompareTo(object other) {…}
}


  上面的代码中ICloneable.Clone 和IComparable.CompareTo 就是显式接口成员执行体。从形势上看,也就是使用了完整的名称空间路径(这个说法好象有问题)。

    当在实现多个接口的时候,如果出现多个接口的内有成员完全相同(包括名称,返回值,参数),在实现类里只出现一个实现的方法或属性(默认),这样多个接口使用同一实现,如果想在类里面出现多个实现,应该对每个要实现的成员使用显示方法实现接口!

二:类继承中的方法

   如果基类:

  public  string  s1(string s)
  {
   return "class2";
  }

public virtual string  s1(string s)
  {
   return "class2";
  }

派生类:public new  string  s1(string s)
  {
   return "class3";
  }

public override string  s1(string s)
  {
   return "class2";
  }

那么在new class3()后使用s1()返回结果"class3";(我原来以为是使用了new后会有些不同,看来原来的想法是错误的~)

 


 

posted on 2005-11-30 13:27  破甲  阅读(315)  评论(0编辑  收藏  举报