转载自http://www.cnblogs.com/if404/archive/2011/10/28/2227197.html 以及感谢 http://www.cnblogs.com/anytao/archive/2007/04/06/703061.html
先介绍一下
接口的实现必须通过一个类来实现
抽象类必须是作为别的类的基类
抽象类
抽象类是指这个类是不完全可用的,只能作为其它类的基类。抽象类和其它非抽象类的最大区别之处在于:抽象类不能被实例化。
1) 抽象类和接口都不能被实例化
2)接口是完全抽象的成员集合;抽象类可以完全实现,也可以部分实现或者根本不实现,从而封装继承类的通用功能
3) 抽象类只能作为基类使用,接口可以从其它基接口继承
4)接口成员默认访问方式是public,接口成员定义不能包含任何访问修饰符;抽象类则不然
5) 接口中不能声明任何种类的静态成员,抽象类则可以
6) 接口成员必须只能是方法、属性、索引器和事件,且不提供实现;抽象类还可以声明字段以及实现的方法和属性等
7) 抽象方法只能在抽象类中声明