c#接口和抽象类的区别比较多,一般常见的有以下几种情况,第一抽象类是要被子类继承的,而接口的实现要依靠类。第二,接口里面定义的变量只能是一种公有的静态常量,然而抽象类里面被定义的变量可以是一个普通变量。第三,抽象类是重构的结果,接口是设计的结果。第四,虽然c#接口和抽象类都可以用来抽象一个具体对象,但是c#接口抽象的级别高。其中的区别在于抽象类主要是用来抽象类别的,而接口则主要是用来抽象功能的。