看.net手册其中的接口都类似
public abstract interface IComparable
就是其都有public abstract修饰符
而且其中还有一个方法是
public abstract new System.Int32 CompareTo ( System.Object obj )
这个abstract new 是什么意思?

解决方案 »

  1.   

    abstract 抽象类(接口)
    new 是说原来有一个函数(方法、属性)现在用这个新的替换原来的。
      

  2.   

    lf_shao(绍)
    这个意思我知道!
      

  3.   

    当实例方法声明包含 abstract 修饰符时,称该方法为抽象方法。虽然抽象方法同时隐含为虚拟方法,但是它不能有 virtual 修饰符。抽象方法声明引入一个新的虚拟方法,但不提供该方法的实现。相反,非抽象类的派生类需要重写该方法以提供它们自己的实现。由于抽象方法不提供任何实际实现,因此抽象方法的方法体只包含一个分号。只允许在抽象类中使用抽象方法声明。在下面的示例中public abstract class Shape
    {
       public abstract void Paint(Graphics g, Rectangle r);
    }
    public class Ellipse: Shape
    {
       public override void Paint(Graphics g, Rectangle r) {
          g.DrawEllipse(r);
       }
    }
    public class Box: Shape
    {
       public override void Paint(Graphics g, Rectangle r) {
          g.DrawRect(r);
       }
    }
    Shape 类定义了一个可以绘制自身的几何形状对象的抽象概念。Paint 方法是抽象的,这是因为没有有意义的默认实现。Ellipse 和 Box 类是具体的 Shape 实现。由于这些类是非抽象的,因此要求它们重写 Paint 方法并提供实际实现。
      

  4.   

    你在哪里看到的IComparable的定义是public abstract interface IComparable?
    我就算是反编译了.NetFramework,看到的也是
    public interface IComparable
    {
          // Methods
          int CompareTo(object obj);
    }
    的定义。
      

  5.   

    sunjian_qi(sonne) 
    在vs.net中的对象浏览器
      

  6.   

    public abstract interface IComparable
    这个根本是语法错误。
    public abstract new System.Int32 CompareTo ( System.Object obj )
    这个很正常哈,就是强令子类必须重新实现CompareTo方法,并开辟一条新的override slot。
      

  7.   

    interface 可以多重继承,abstract class 无法多重