请大侠讲讲C#中接口与抽象的区别, 何时用接口,何时用抽象类;若有实例比较深表感谢!

解决方案 »

  1.   

    本文尝试用自己的理解来阐述一下接口和抽象类的相同点和不同点。
    http://blog.csdn.net/zhoufoxcn/archive/2007/04/06/1554041.aspx
      

  2.   

    抽象的类里面可以包括部分具体实现,而接口则不行。public abstract class AClass
    {
        private int x;
        private int y;
        public int X { get { return x; } }
        public int Y { get { return y; } }    public float Sum() { return X + Y; }    public abstract float Average();
    }public class BClass : AClass
    {
        public override float Average()
        {
            return Sum() / 2;
        }
    }如上面的例子,在抽象类中,实际包括了:几处具体的实现,二个属性,一个求和方法。
    同时对于接口来说,根本就无法定义字段成员,也就是private int x,private int y;它是无法定义的。
      

  3.   

    对于接口实现同样的功能,你只能做到:public interface A
    {
        public int X{get;}
        public int Y{get;}
        public float Sum();
    }你无法提供Sum的任何功能,但反过来说。