抽象类和接口的区别:
相同点:抽象类和接口都是引用类型,并且都不能进行实例化
异同点:
1、抽象类主要描述的是类型的所属关系,而接口主要描述的是类型的行为规范或行为合同,即内部包含的方法可以做什么等等。
2、抽象类只能是单继承,而一个类可以一次实现多个接口的。
3、抽象类和派生类之间是 IS-A的关系,而接口和实现接口的类型之间是CAN-DO的关系。
---------------------
另外针对接口多说几句:
接口一般在C#声明中是要加PUBLIC访问控制符的,默认为保护,在后期继承类中使用可能会出现问题,
而接口里的成员则可以忽略访问控制符。
另外接口类可以定义属性 如:
1 public interface AnonymousInterface
2 {
3 //属性
4 int Num
5 {get; set;
6 }
7 //索引器
8 int this[int index]{get;set;}
9 //事件
10 event EventHandler Click;
11 //此处事件本质不是成员,是两个方法。
12 //但是接口中不能有构造器,不能包含字段,静态字段,静态方法,
13 }
2 {
3 //属性
4 int Num
5 {get; set;
6 }
7 //索引器
8 int this[int index]{get;set;}
9 //事件
10 event EventHandler Click;
11 //此处事件本质不是成员,是两个方法。
12 //但是接口中不能有构造器,不能包含字段,静态字段,静态方法,
13 }